当前位置: 首页 > news >正文

PostgreSQL 初体验

目录

一、PostgreSQL

1. 简介

2. 特点

(1) 开源免费(Open Source)

(2)标准兼容(SQL Compliance)

(3) 丰富的数据类型(Data Types)

(4) 强大的事务与并发控制(Transactions & Concurrency)

(5)高度可扩展(Extensibility)

(6)企业级安全性(Security)

3. 优势

4. 架构

5. 应用场景

6. 结论

二、安装PostgreSQL

1. 编译安装

(1)安装编译安装所需环境

(2)编译安装

(3)配置环境变量

(4)登录数据库

三、PostgreSQL 结构

1. PG 的逻辑结构​编辑

2. PG 的物理结构

(1)软件安装目录

(2)数据库目录结构​编辑

(3)数据库有两个基础的对象,一个是oid, 一个是表空间

(4)base 的物理布局设计

(5)表空间跟数据库关系


一、PostgreSQL

1. 简介

PostgreSQL(简称Postgres)是一款功能强大的开源对象-关系型数据库管理系统(ORDBMS),强调对SQL标准的全面支持,并逐渐发展成为兼具关系型数据库严谨性和面向对象灵活性的开源数据库。

其核心设计理念包括高度可扩展性、数据完整性及对复杂查询的支持,广泛应用于企业级应用、数据分析、地理信息系统(GIS)等领域

2. 特点

(1) 开源免费(Open Source)
  • 基于 PostgreSQL License(类 BSD 协议),允许自由使用、修改和商业发布,无版权限制。
  • 社区驱动开发,全球开发者贡献代码,版本迭代活跃(如近年新增 JSONB 全文索引、向量存储等前沿功能)。
(2)标准兼容(SQL Compliance)
  • 支持 ANSI SQL 标准(如窗口函数、CTE、事务隔离级别),同时扩展了大量企业级特性(如递归查询、行级锁)。
  • 兼容 SQL/JSON 标准,JSONB 类型支持高效索引和查询,适合现代 Web 应用的半结构化数据场景。
(3) 丰富的数据类型(Data Types)
  • 基础类型:除传统数值、字符串、日期外,支持数组(Array)、枚举(Enum)、范围类型(如 int4range 表示整数区间)。
  • 高级类型
    • 空间数据:通过 PostGIS 扩展支持几何图形(Point、LineString、Polygon)和地理信息系统(GIS)功能。
    • 全文搜索:内置 tsvector/tsquery 类型,支持分词、模糊匹配和相关性排序。
    • 新兴类型:支持 JSONB(可索引的 JSON)、XML、IPv6、UUID,以及 PostgreSQL 15 + 新增的向量类型(用于 AI / 机器学习场景)。
(4) 强大的事务与并发控制(Transactions & Concurrency)
  • ACID 强一致性:通过预写日志(WAL, Write-Ahead Logging)保证数据持久化,崩溃恢复机制可靠。
  • MVCC(多版本并发控制):默认隔离级别为 Read Committed,通过版本号实现无锁读,避免写锁阻塞读操作,适合高并发场景(如电商订单、实时分析)。
  • 细粒度锁控制:支持表级锁、行级锁(SELECT ... FOR UPDATE)和 advisory lock(自定义应用层锁)。
(5)高度可扩展(Extensibility)
  • 插件生态:通过 CREATE EXTENSION 机制快速集成功能,例如:
    • PostGIS:空间数据处理,用于地图服务、物流轨迹分析。
    • pg_cron:定时任务调度,替代 Linux cron。
    • Citus:分布式扩展,支持分库分表,提升大数据量下的查询性能。
    • pg_stat_statements:SQL 性能分析,定位慢查询。
  • 自定义函数:支持 PL/pgSQL、Python、Java 等多语言编写存储过程,甚至动态加载 C 语言扩展。
  • 存储过程与触发器:支持复杂业务逻辑下沉到数据库层,减少应用层压力。
(6)企业级安全性(Security)
  • 认证机制:支持 LDAP、Kerberos、SCRAM-SHA-256 密码认证,兼容多认证源(如 AWS IAM 数据库认证)。
  • 权限控制:基于角色(ROLE)的细粒度权限管理,支持表级、列级权限(如敏感字段隐藏)和行级安全策略(RLS, Row-Level Security),实现 “不同用户看到不同数据”。
  • 加密能力
    • 传输层:支持 SSL/TLS 加密连接,防止数据窃听。
    • 存储层:通过 pgcrypto 扩展实现字段级加密,或集成云服务商的透明数据加密(TDE)。
  • 审计日志:内置日志记录功能,可追踪 SQL 操作,满足合规性要求(如 GDPR、等保 2.0)。

3. 优势

  • 高性能:PostgreSQL 通过优化查询计划、支持并行查询、分区表等特性,提供卓越性能表现,即使处理大规模数据和高并发访问时,也能保持高效响应速度。

  • 高可用性:支持主从复制、流复制和逻辑复制等多种复制方式,使数据库系统轻松实现高可用性和容灾备份,故障时能快速恢复服务,确保业务连续性。

  • 灵活性:丰富的数据类型和高级特性使其能灵活应对各种复杂业务场景,无论是结构化数据还是非结构化数据,都能提供强大支持。

  • 社区支持:拥有活跃的开发者社区和丰富生态系统,社区中有大量教程、文档和插件可供使用,众多经验丰富的开发者也愿意分享经验、解答问题。

  • 成本效益:作为开源软件,降低了企业成本投入,其卓越性能和广泛应用场景使其成为许多企业的首选数据库产品。

4. 架构

  • 逻辑层面包含数据库集群、表空间、数据库、Schema、表、索引等结构;

  • 物理层面包括数据文件、日志文件、参数文件、控制文件等存储方式,其中数据块(Page)作为数据读写基本单位,在 PostgreSQL 中扮演关键角色。通过优化数据块的读写效率和布局方式,PostgreSQL 能进一步提高性能表现。

5. 应用场景

  • 企业应用:如ERP、CRM、HRM等系统,需要处理复杂的事务和查询操作;postgresql凭借其高性能和事务处理能力,能够为企业应用提供稳定可靠的数据支持。

  • 数据分析:在数据仓库和商业智能领域,PostgreSQL 凭借其丰富的数据类型和高级查询特性,能够轻松应对大规模数据分析和挖掘任务。

  • web 应用:对于需要高并发访问和实时数据处理的 Web 应用来说,PostgreSQL 的 MVCC 机制和扩展性特性使得其成为了一个理想的选择。

  • 地理信息系统:通过 PostGIS 扩展,PostgreSQL 能够支持地理空间数据的存储和分析功能,为 GIS 应用提供了强大的数据支持。

  • 物联网与大数据:随着物联网和大数据技术的不断发展,PostgreSQL 凭借其高性能、可扩展性和丰富的数据类型特性,在物联网和大数据领域中也得到了广泛的应用。

6. 结论

PostgreSQL 是一款功能强大、开源的数据库管理系统,在信息化建设中发挥越来越重要的作用,其丰富的特性、卓越的性能、灵活的应用场景以及强大的社区支持使它成为了众多企业与开发者的首选数据库产品。

二、安装PostgreSQL

1. 编译安装

(1)安装编译安装所需环境
1.下载依赖包   dnf -y install gcc libicu libicu-devel readline-devel zlib zlib-devel
2. 解压  tar zxvf
3. 切换进目录
(2)编译安装
配置编译   ./configure --prefix=/usr/local/pgsql
make && make install
(3)配置环境变量
5.创建用户  useradd postgres
6.创建数据存储目录   mkdir /usr/local/pgsql/data
7.改目录归属  chown -R postgres /usr/local/pgsql/data
8.配置环境变量     vim /etc/profile函数库路径 	export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/loacl/pgsql/lib命令路径		export  PATH=$PATH:/usr/local/pgsql/bin
9.刷新环境变量   source /etc/profile
查看    echo $PATH/LD_LIBRARY_PATH
(4)登录数据库
10.初始化
切换用户  su - postgres
初始   /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
11.启动数据库
启动程序  /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
12.登录
psql

三、PostgreSQL 结构

1. PG 的逻辑结构

  • 集群(Cluster)

    • 一个 PostgreSQL 服务实例对应一个集群,包含多个数据库。

    • 通过 initdb 初始化时创建,是物理数据存储的顶层容器。

  • 数据库(Database)

    • 集群内可创建多个数据库,每个数据库独立(默认不共享数据)。

    • 用户通过 CREATE DATABASE 创建,不同数据库通过名称隔离。

  • 模式(Schema)

    • 每个数据库包含多个模式(类似于命名空间),用于逻辑分组表、视图等对象。

    • 默认模式为 public,可通过 CREATE SCHEMA 创建新模式

  • User 用户

    • postgres 用户是默认创建的超级管理员;每个数据库都有一个 OWNER 用户,每个用户可以 OWNER 多个数据库。

  • 数据库对象

    • 包含 table、index、view、序列、函数等,数据最终存储在表中。表由多个 page[block]组成,一个 page 包含(页头信息、空闲空间、Tuple),实际存储数据的区域对应到物理层面上是文件,由 page 构成。

    • 模式内包含具体对象,如表、视图、索引、函数等。

    • 对象通过 <schema>.<object> 格式引用(如 public.users

  • tablespace:存储数据库的一个逻辑空间,可以存放不同的数据库,对应在物理层面上是一个目录。

  • OID:所有数据库对象都有各自的 oid(object identifiers),oid 是一个无符号的四字节整数,相关对象的 oid 存放在相关的 system catalog 表中,如数据库的 oid 和表的 oid 分别存放在 pg_database、pg_class 表中。

  • 总结
    (1)从大小排列:database cluster --> databases --> schema --> objects。
    (2)Tablespace 是数据最大的存储空间,Database 是构成表空间的存储单元,pages 是 PostgreSQL 数据库中最小的 IO 单元。

2. PG 的物理结构

(1)软件安装目录

其中各个目录里的内容及用途:

  • bin:二进制可执行文件,是 PG 数据库的所有相关命令所在,为方便使用需设置到环境变量中
  • lib:动态库目录,PostgreSQL 运行所需要的动态库都在此目录下
  • share:放有文档和配置模板文件,一些拓展插件的 SQL 文件在此目录下的 extension 中
  • data:目录是数据库集群的物理存储核心,包含用户数据、元数据和配置文件
  • include:目录则提供编译扩展和客户端程序所需的 C 语言头文件
(2)数据库目录结构
-bash - 4.2$ tree -L 1 -d /usr/local/pgsql/data/
/usr/local/pgsql/data/ —— 数据目录├── base —— 表和索引文件存放目录
├── global —— 影响全局的系统表存放目录
├── pg_commit_ts —— 事务提交时间戳数据存放目录
├── pg_dynshmem —— 被动态共享所使用的文件存放目录
├── pg_logical —— 用于逻辑复制的状态数据
├── pg_multixact —— 多事务状态的数据
├── pg_notify —— LISTEN/NOTIFY 状态的数据
├── pg_replslot —— 复制槽数据存放目录
├── pg_serial —— 已提交的可序列化信息存放目录
├── pg_snapshots —— 快照
├── pg_stat —— 统计信息
├── pg_stat_tmp —— 统计信息子系统临时文件
├── pg_subtrans —— 子事务状态数据
├── pg_tblspc —— 表空间
├── pg_twophase —— 预备事务状态文件
├── pg_wal —— 事务日志(预写日志)
└── pg_xact —— 日志提交状态的数据存放目录#是最小化系统,可以临时安装包管理器进行查看 yum install -y tree
#或手动解析成树状图  find /usr/local/pgsql/data/ -type d | sed 's/[^-][^\/]*\//--/g; s/^/   /; s/\/$/|/'
#非树状 ls -R /usr/local/pgsql/data/  通过 -R 参数递归显示目录层级

 文件和目录相关作用描述

filesdescription
PG_VERSION包含 PostgreSQL 主版本号的文件
pg_hba.conf控制 PostgreSQL 客户端验证的文件,控制 PG 客户端认证主机、数据库、用户、IP 地址
pg_ident.conf控制 PostgreSQL 用户名映射的文件,配置操作系统用户和数据库服务器上的用户映射
postgresql.conf配置参数文件
postgresql.auto.conf用于存储在 ALTER SYSTEM(版本 9.4 及更高版本)中设置的配置参数的文件
postmaster.opts记录服务器上一次启动的命令行选项
subdirectoriesdescription
base/包含每个数据库子目录的子目录
global/包含集群范围表的子目录,例如 pg_database 和 pg_control
pg_commit_ts/包含事务提交时间戳数据的子目录。9.5 版本以后
clog / 或 pg_xact(9.6 及 earlier)包含事务提交状态数据的子目录,它在版本 10 中重命名为 pg_xact。CLOG 将在 5.4 章节中讲解。
dynshmem/包含动态共享内存子系统使用的文件的子目录。9.4 版本以后
logical/包含逻辑解码的状态数据的子目录。9.4 版本以后
pg_multixact/包含多事务状态数据的目录(用于共享行锁)
pg_notify/包含 LISTEN/NOTIFY 状态数据的子目录
pg_replslot/包含复制槽数据的子目录(9.4 版本以后)
pg_serial/包含已提交的可序列化事务信息(9.1 版本以后)信息的子目录
pg_snapshots/包含导出快照的子目录(9.2 版本以后)。PostgreSQL 的函数 pg_export_snapshot 在此子目录中创建快照信息文件
pg_stat/包含统计子系统永久文件的子目录
pg_stat_tmp/包含统计子系统临时文件的子目录
pg_subtrans/包含子事务状态数据的子目录
pg_tblspc/表空间符号链接目录
pg_twophase/包含 prepare 事务的状态文件
pg_wal/(Version 10 or later)包含 WAL(Write Ahead Logging)段文件的子目录。在版本 10 中从 pg_xlog 重命名而来。
pg_xact/(Version 10 or later)包含事务提交状态数据的子目录。在版本 10 中从 pg_clog 重命名而来。CLOG 将在 5.4 章节中详解。
pg_xlog/(Version 9.6 or earlier)包含 WAL(Write Ahead Logging)段文件的子目录。在版本 10 中重命名为 pg_wal。
(3)数据库有两个基础的对象,一个是oid, 一个是表空间
  • OID(Object Identifier)

    • 每个数据库对象(如表、索引)分配唯一的 32 位整数标识符。

    • 系统表(如 pg_class)记录 OID 与对象名的映射。

    -- 查看表的 OID  
    SELECT oid, relname FROM pg_class WHERE relname = 'users';  
  • 表空间(Tablespace)

    • 定义数据文件的存储路径,允许将数据分散到不同磁盘。

    • 默认表空间:

      • pg_default:存储用户数据(对应 base 目录)。

      • pg_global:存储集群级系统表(对应 global 目录)。

(4)base 的物理布局设计
  • base 目录

    • 每个数据库在 base 下有一个以数据库 OID 命名的子目录。

    • 示例:数据库 OID 为 16384 → 目录为 base/16384

  • 数据文件

    • 每个表或索引对应一个或多个文件(文件名为 relfilenode 值)。

    • 文件命名规则:<relfilenode>(如 12345)。

    • 大表可能被拆分为多个文件(如 12345.112345.2)。

(5)表空间跟数据库关系
  • 在 Oracle 数据库中:一个表空间只属于一个数据库使用,而一个数据库可以拥有多个表空间,属于 “一对多” 的关系。
  • 在 PostgreSQL 集群中:一个表空间可以让多个数据库使用,而一个数据库可以使用多个表空间,属于 “多对多” 的关系。

    系统自带表空间:

  • 表空间 pg_default 是用来存储系统目录对象、用户表、用户表 index、临时表、临时表 index、内部临时表的默认空间,对应存储目录 $PGDATA/base/。
  • 表空间 pg_global 用来存放系统字典表,对应存储目录 $PGDATA/global/。

相关文章:

PostgreSQL 初体验

目录 一、PostgreSQL 1. 简介 2. 特点 &#xff08;1&#xff09; 开源免费&#xff08;Open Source&#xff09; &#xff08;2&#xff09;标准兼容&#xff08;SQL Compliance&#xff09; &#xff08;3&#xff09; 丰富的数据类型&#xff08;Data Types&#xff09…...

北斗导航 | 基于matlab的多波束技术的卫星通信系统性能仿真

基于多波束技术的低轨(LEO)卫星通信系统 **1. 仿真场景建模**1.1 LEO卫星轨道参数设置1.2 地面终端分布**2. 多波束天线模型**2.1 波束方向图生成2.2 频率复用方案**3. 链路预算与干扰分析**3.1 自由空间路径损耗3.2 信噪比(SNR)计算**4. 动态资源调度算法**4.1 基于流量需…...

数据结构与算法学习笔记(Acwing 提高课)----动态规划·状态机模型

数据结构与算法学习笔记----动态规划状态机模型 author: 明月清了个风 first publish time: 2025.5.20 ps⭐️背包终于结束了&#xff0c;状态机模型题目不多。状态机其实是一种另类的状态表示方法&#xff0c;将某一个点扩展为一个状态进行保存并在多个状态之间转移&#xf…...

Vue 3.0 中 Teleport 详解

Teleport 是 Vue 3.0 引入的一个非常有用的特性&#xff0c;它允许你将组件的一部分模板"传送"到 DOM 中的其他位置&#xff0c;而不改变组件的逻辑层次结构。 1. 基本概念 Teleport 的主要用途是将某些 DOM 元素渲染到 Vue 应用之外的 DOM 节点中&#xff0c;这在…...

Linux在防火墙中添加开放端口

例如&#xff1a;安装docker时启动报错&#xff1a; Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 此时开放对应端口号就可以咯 在防…...

day24:零基础学嵌入式之系统编程

一、系统编程包含 文件的读写、和常用操作&#xff0c;操作系统已经进入多任务时代&#xff0c;在同一时刻同时运行多个程序。 二、标准io&#xff1b;stdio.h&#xff08;以计算机为中心&#xff09; 1.头文件路径&#xff1a;/usr/include/stdio.h so动态库&#xff1a;st…...

2.10 财务分析

10.1 财务报告构成及列报基本要求 10.1.1 财务报告 1.财务报告的构成 资产负债表、利润表、现金流量表、所有者权益变动表和附注小型企业可不编现金流量表。 2.财务报表及其作用 1.资产负债表的内容及其作用 内容 资产类、流动性大小顺序排序。流动资产、非流动资产负债和…...

docker容器知识

一、docker与docker compose区别&#xff1a; 1、docker是创建和管理单个容器的工具&#xff0c;适合简单的应用或服务&#xff1b; 2、docker compose是管理多容器应用的工具&#xff0c;适合复杂的、多服务的应用程序&#xff1b; 3、docker与docker compose对比&#xff…...

国标GB28181视频EasyGBS视频监控平台搭建城市交通道路可视化管理/道路视频巡检/应急监控指挥

一、方案背景​ 随着城市人口与车辆激增&#xff0c;交通管理面临严峻挑战&#xff1a;高峰期道路拥堵、事故处理滞后、违法取证低效&#xff0c;传统管理模式难以为继。智慧交通依托信息技术&#xff0c;成为破局关键&#xff0c;其中视频监控是实现精细化管理的核心。国标GB…...

【LeetCode 热题 100】有效的括号 / 最小栈 / 字符串解码 / 柱状图中最大的矩形

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 栈有效的括号最小栈字符串解码每日温度柱状图中最大的矩形 堆数组中的第K个最大元素 栈 有效的括号 有效的括号 cl…...

Oracle中如何解决BUFFER BUSY WAITS

和BUFFER CACHE相关的常见等待事件还有BUFFER BUSY WAITS。顾名思义&#xff0c;BUFFER BUSY WAITS等待事件指的是多个会话不能共享缓冲区中的数据块而引发的等待事件。 发生BUFFER BUSY WAITS事件时&#xff0c;P1值代表数据文件号&#xff0c;P2值代表数据块号&#xff0c;P3…...

LeetCode 93.复原IP地址 LeetCode 78.子集 LeetCode 90.子集II

LeetCode 93.复原IP地址 其实思想跟回文字符串那道题是类似的&#xff0c;但难点在于这道题的终止条件和判断是否IP地址进行划分后是否合理&#xff1f; 思路&#xff1a; 通过一个int类型的全局变量来记载 " . " 的数目 / 记录你当前所获得的小数组的数目&#x…...

Java转Go日记(四十一):Gorm删除

1.1.1. 删除/软删除 警告删除记录时&#xff0c;需要确保其主要字段具有值&#xff0c;GORM将使用主键删除记录&#xff0c;如果主要字段为空&#xff0c;GORM将删除模型的所有记录 // 删除存在的记录db.Delete(&email)DELETE from emails where id10;// 为Delete语句添加…...

Java基于SpringBoot的公交智能化系统,附源码+文档说明

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

电子电器架构 --- 汽车高性能计算

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

Journal of Real-Time Image Processing 投稿过程

投稿要求双栏12页以内(包括参考文献)&#xff0c;这个排版要求感觉不是很严格&#xff0c;我当时就是用普通的双栏的格式去拍的版&#xff0c;然后就提交了&#xff0c;也没单独去下载模版。 投稿过程 12.12 Submission received 12.12 Submission is under technical check 1…...

利用basee64特性 -- BYUCTF 2025 JWTF

题目信息: Unfortunately one of our JWTs was compromised by attackers, so we created a JWT Revocation List to ensure they can’t use it anymore. 代码量很少 # 导入必要的模块 # 从 flask 模块导入 Flask, request, redirect, make_response, jsonify 类和函数 from f…...

湖北理元理律师事务所:科学债务规划如何平衡还款与生活

在债务压力普遍加剧的背景下&#xff0c;如何通过专业规划实现“还款不停生活”&#xff0c;成为许多债务人关注的核心问题。湖北理元理律师事务所基于多年实务经验&#xff0c;总结出一套兼顾法律合规性与人性化需求的债务管理方案&#xff0c;其核心逻辑在于通过法律工具优化…...

1.1HarmonyOS NEXT技术架构深度解析:微内核架构与系统分层

HarmonyOS NEXT技术架构深度解析&#xff1a;微内核架构与系统分层 摘要 作为面向万物互联时代的全场景操作系统&#xff0c;HarmonyOS NEXT通过革命性的星核架构&#xff08;Star Kernel&#xff09;重构了系统底层架构。本文将深入解析HarmonyOS NEXT的微内核设计原理、系统…...

考研系列-408真题计算机组成原理篇(2015-2019)

写在前面 此文章是本人在备考过程中408真题计算机组成原理部分(2015年-2019年)的易错题及相应的知识点整理,后期复习也常常用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2015年 1.IO端口 接口电路中可以被CPU直接访问的寄存器 IO控制方式-中断…...

HarmonyOS Next 关键资产的解释

关键资产的安全存储与管理&#xff1a;HarmonyOS Asset Store Kit 深度解析 一、关键资产的定义与重要性 关键资产&#xff08;Critical Asset&#xff09;是指应用运行过程中涉及的短敏感数据&#xff0c;包括但不限于用户密码、身份令牌&#xff08;Token&#xff09;、银行…...

Awesome ChatGPT Prompts:释放AI对话潜力的开源利器

项目概览 Awesome ChatGPT Prompts 是由土耳其开发者 Fatih Kadir Akın 发起的开源项目,托管于 GitHub,旨在通过精心设计的提示词模板(Prompts)优化用户与 ChatGPT 的交互体验。项目以 Markdown 和 CSV 格式管理模板,无需复杂编程语言,但需文本处理能力,目前已在 GitH…...

第6章 C控制语句:循环

目录 6.1 再探while 循环6.2 while语句6.3 比较大小&#xff1a;使用关系运算符和表达式6.4 不确定的循环与计数循环6.5 for循环6.6 更多赋值运算符&#xff1a;、-、*、/和%6.7 逗号运算符6.8 退出条件循环&#xff1a;do while6.9 选择哪种循环6.10 嵌套循环6.11 数组6.12 使…...

海盗王客户端更换横版任务面板的实现

海盗王的任务面板&#xff0c;采用的是竖长设计&#xff0c;上半部分显示任务列表&#xff0c;下半部分显示任务详情。 这样的设计会带来一个问题&#xff1a;就是任务多的时候&#xff0c;不能完整显示&#xff0c;只能显示前面几个&#xff0c;后面的会隐藏到滚动条里面&…...

【git】在Windows上搭建git服务器

1、简述 常用的搭建git服务器的工具有&#xff1a;Gogs、Gitblit、Gitea、GitLab 它们的区别如下&#xff1a; 功能GogsGitblitGiteaGitLab界面语言中文、英文等多语言英文为主中文、英文等多语言英文为主权限管理基础分支权限详细分支权限基础 详细分支权限非常完善代码审查…...

leetcode hot100刷题日记——6.和为 K 的子数组

解答&#xff1a;前缀和思想&#xff0c;见灵茶山艾府大大题解。 &#xff08;1&#xff09;前缀和思想&#xff1a; 前缀和数组prefix_sum的定义是prefix_sum[i] nums[0] nums[1] … nums[i]。如果存在两个前缀和prefix_sum[j]和prefix_sum[i]满足prefix_sum[i] - prefi…...

人工智能的“歧视”:“她数据”在算法运行中隐形

纵观人类的发展史&#xff0c;每一次科技进步都将对性别平等产生深刻影响。尤其是当下&#xff0c;人们对于借助人工智能技术快速发展来弥合性别不平等寄予厚望。 但很多人没想过&#xff0c;人工智能技术本身是客观中立、不存在“算法歧视”“性别偏见的吗&#xff1f; 弗吉…...

Java数组列表 - ArrayList

在Java中&#xff0c;ArrayList是一种非常实用的数据结构&#xff0c;它允许开发者动态地管理数组大小。通过ArrayList&#xff0c;可以轻松地添加、删除和修改元素&#xff0c;以及获取元素和列表的大小。例如&#xff0c;创建一个ArrayList来存储字符串&#xff0c;然后通过a…...

跨境外贸电商供应链一体化ERP管理系统

项目介绍: 跨境外贸电商供应链一体化ERP管理系统 高清视频演示: 跨境外贸电商供应链一体化ERP管理系统_哔哩哔哩_bilibili 系统说明: 外贸电商产品ERP系统包含多个角色&#xff08;客户、客服、工厂、供应商&#xff09;和多个功能模块&#xff0c;以下是系统功能的详细说明…...

数据库表连接结构详解

数据库表连接结构详解 介绍 本文基于提供的SQL表结构&#xff0c;解释了表之间的连接关系。这些表主要涉及AI系统配置&#xff0c;如客户端、顾问和智能体等。通过外键&#xff08;如client_id、agent_id&#xff09;&#xff0c;这些表形成关联网络。 表连接概述 以下是主…...

Vue3.0教程005:watch监视ref定义的【基本类型】数据和【对象类型】数据

文章目录 4、watch监视4.1 前言4.2 情况一4.3 情况二 4、watch监视 4.1 前言 作用&#xff1a;监视数据的变化&#xff08;和vue2中的watch作用一致&#xff09;特点&#xff1a;Vue3中的watch只能监视以下四种数据&#xff1a; ref定义的数据。reactive定义的数据。函数返回…...

【Java的批量操作】

系列文章目录 Java知识点 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、常见批量操作方法&#x1f449;1-1、JDBC 批量操作&#xff08;数据库&#xff09;&#x1f449;1-2、MyBatis 批量操作&#x1f449;1-3、Java 8 Stream 批量处理集合&#x1f449;1-4、多线…...

流复备机断档处理

文章目录 环境症状问题原因解决方案 环境 系统平台&#xff1a;UOS&#xff08;海光&#xff09;,UOS &#xff08;飞腾&#xff09;,UOS&#xff08;鲲鹏&#xff09;,UOS&#xff08;龙芯&#xff09;,UOS &#xff08;申威&#xff09;,银河麒麟svs&#xff08;X86_64&…...

PostgreSQL架构

目录 一、PostgreSQL核心特性与优势 1.PostgreSQL简介 2.PostgreSQL的核心特点 &#xff08;1&#xff09;开源与自由 &#xff08;2&#xff09;高度符合SQL标准 &#xff08;3&#xff09;丰富的数据类型 &#xff08;4&#xff09;事务与并发控制 &#xff08;5&…...

苍穹外卖系统结构与功能报告

一、系统简介 苍穹外卖系统是为餐饮企业定制的数字化解决方案&#xff0c;包含管理端后台和用户端小程序两部分。管理端面向餐饮企业员工&#xff0c;支持菜品、套餐、订单等核心业务的数字化管理&#xff1b;用户端面向消费者&#xff0c;提供在线点餐、支付、订单跟踪等功能…...

CAU数据库class3 关系型数据库基础

关系数据库模型的3个要素 数据结构 二维表 数据操作 特点 操作的对象为元组&#xff0c;操作的结果为元组高度非过程化&#xff0c;用户不关系是怎么实现的 完整性约束 数据完整性是指保证数据真确的特性 实体完整性参照完整性用户定义完整性 关系的形式定义 例子&…...

【Qt】在OrinNX上,使用命令安装qtmultimedia5-dev时报错

1、问题描述 在OrinNX+Ubuntu20.04上,使用命令安装qtmultimedia5-dev时报错 sudo apt install qtmultimedia5-devThe following packages have unmet dependencies: qtmultimedia5-dev : Depends: libpulse-dev but it is not going to be installed E: Unable to correct p…...

阿里云CDN刷新预热--刷新URL

文章目录 一、全英文URL刷新预热二、掺杂中文的URL刷新预热2.1 对带中文URL进行编码2.2 预热刷新 三、CDN刷新-核心作用与价值3.1 核心作用3.2 核心价值3.3 典型使用场景 *最后我想说&#xff1a;请你不要相信我说的每一句话&#xff0c;这只是我的个人经验* 一、全英文URL刷新…...

anaconda、miniconda、conda的关系及miniconda安装

anaconda、miniconda、conda的关系及miniconda安装 文章目录 前言正文定义关系Linux安装miniconda新建一个python3.8环境 参考 前言 本文用于记录关于Anaconda、conda和Miniconda的定义及其关系的总结123&#xff1a; 正文 定义 conda 一个跨平台的开源包管理和环境管理工具…...

SpringBoot实现本地对象存储【minio、阿里云、七牛云】

引入依赖 <!-- minio --> <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.12</version> </dependency><!-- 阿里云oss --> <dependency><groupId>com.aliyun.…...

阿里云百炼(1) : 阿里云百炼应用问答_回答图片问题_方案1_提问时上传图片文件

直接用于拍照答题不大理想, 可能适用其他用途, 更好的方案: 阿里云百炼(1) : 阿里云百炼应用问答_回答图片问题_方案2_提取题目再提问-CSDN博客 1.实现代码 package cn.nordrassil.ly.test.拍照答题;import com.alibaba.dashscope.app.Application; import com.alibaba.dashsc…...

理解阿里云的MQTT

一、阿里云的mqtt分几种 阿里云提供的MQTT服务主要分为‌标准MQTT协议‌和‌P2P模式MQTT‌两种类型&#xff0c;二者在通信模式及适用场景上有显著差异&#xff1a; 1、标准MQTT与P2P MQTT的区别 ‌特性‌‌标准MQTT‌‌P2P模式MQTT‌‌通信模式‌发布/订阅&#xff08;Pub/S…...

HarmonyOS5云服务技术分享--云缓存快速上手指南

大家好&#xff0c;今天我们来聊聊如何快速上手华为AppGallery Connect&#xff08;AGC&#xff09;的云缓存服务。作为一款基于Serverless架构的Key-Value型缓存服务&#xff0c;它不仅能自动弹性伸缩&#xff0c;还能免去运维烦恼&#xff0c;非常适合高并发场景下的数据快速…...

FreeSWITCH rtcp-mux 测试

rtcp 跟 rtp 占用同一个端口&#xff0c;这就是 rtcp 复用 Fs 呼出是这样的&#xff1a; originate [rtcp_muxtrue][rtcp_audio_interval_msec5000]user/1001 &echo 需要同时指定 rtcp_audio_interval_msec&#xff0c;否则 rtcp_mux 不能生效 Fs 呼入不需要配置&#xf…...

浏览器播放 WebRTC 视频流

源码&#xff08;vue&#xff09; <template><video ref"videoElement" class"video" autoplay muted playsinline></video> </template><script setup lang"ts">import { onBeforeUnmount, onMounted, ref } fr…...

SpringBoot3+Vue3(1)-后端 请求头校验,jwt退出登录,mybaits实现数据库用户校验

1.后端&#xff1a;jwt请求头校验 解析 工具类jwtUtils 解析token 令牌是否过期&#xff0c;验证 正常、异常、运行时错误 倒入工具类是resource 工具类中添加解析用户的方法&#xff1a; 在 在工具类添加id解析 此处调用 添加controller做测试 测试&…...

Oracle RAC 中的 RBAL 进程

Oracle RAC 中的 RBAL 进程 RBAL 进程概述 RBAL&#xff08;ReBalancer&#xff09;是 Oracle RAC 和 ASM&#xff08;Automatic Storage Management&#xff09;环境中的一个关键后台进程&#xff0c;主要负责 ASM 磁盘组的重新平衡操作。 主要功能 磁盘组监控&#xff1a…...

mac上将 Excel 文件的扩展名从 .xls 改为 .xlsx 后,打开时报错:“文件格式或文件扩展名无效”。

方法一&#xff1a;使用 Excel for Mac 打开并另存为 打开 Excel 应用程序。 打开你的 .xls 文件&#xff1a; 如果 Excel 能正常打开它&#xff0c;说明文件没问题。 在菜单栏点击&#xff1a;文件 → 另存为。 在文件格式中选择&#xff1a;Excel 工作簿 (.xlsx)。 点击保存…...

【算法-栈】深入栈模拟题:从题型特征到实现技巧

算法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;双指针滑动窗口二分查找前缀和位运算模拟链表哈希表字符串模拟 在算法学习中&#xff0c;栈是最基础也是最容易上手的数据结构之一。然而&#xff0c;当它被用于模拟复杂操作流程时&#xff0c;却常常成为区分“…...

OK536N-C测评:开箱体验以及在Linux下如何管理开发板

前言 OK536N-C终于到我手上了&#xff0c;因为我的主要领域是做嵌入式音视频。例如相机类产品&#xff0c;录像类产品&#xff0c;直播类产品都是我所涉及到的。本片文章一起来开箱见证下OK536N-C有哪些魅力&#xff0c;据说很强。 对于一个嵌入式领域的开发者来说&#xff0…...