1313
1414| PostgreSQL | Release Date |
1515| --------------- | ------------ |
16- | [ PostgreSQL 18] |
16+ | [ PostgreSQL 18] | 2025-09-25 |
1717| [ PostgreSQL 17] | 2024-09-26 |
1818| [ PostgreSQL 16] | 2023-09-14 |
1919| [ PostgreSQL 15] | 2022-10-13 |
@@ -39,29 +39,112 @@ tags:
3939
4040## PostgreSQL 18
4141
42+ - 异步 I/O 子系统
43+ - 新的 AIO 子系统,支持并发 I/O 请求
44+ - 支持 ` worker ` 和 ` io_uring ` 方法
45+ - 顺序扫描、位图堆扫描、vacuum 操作性能提升高达 3 倍
46+ - 通过 ` io_method ` 参数配置
4247- 虚拟生成列
43- - ` generated always as (EXPR) virtual `
48+ - ` generated always as (EXPR) virtual ` - 查询时计算,默认选项
49+ - 存储生成列支持逻辑复制
4450 - 提升写入性能、减少存储空间
45- - 影响查询性能
51+ - 升级优化
52+ - 保留规划器统计信息通过主版本升级
53+ - ` pg_upgrade ` 支持并行检查和 ` --swap ` 标志
54+ - 减少升级后性能恢复时间
55+ - 查询性能增强
56+ - 多列 B-tree 索引的 "skip scan" 查找
57+ - ` OR ` 条件查询可使用索引优化
58+ - 哈希连接和合并连接性能提升
59+ - GIN 索引支持并行构建
60+ - 开发者体验
61+ - ` RETURNING ` 子句支持访问 ` OLD ` 和 ` NEW ` 值
62+ - ` uuidv7() ` 函数生成时间戳排序的 UUID
63+ - ` uuidv4() ` 作为 ` gen_random_uuid() ` 的别名
64+ - 时间约束支持 ` WITHOUT OVERLAPS ` 和 ` PERIOD ` 子句
65+ - ` CREATE FOREIGN TABLE ... LIKE ` 命令
66+ - 文本处理改进
67+ - ` PG_UNICODE_FAST ` 排序规则,加速 Unicode 比较
68+ - 支持非确定性排序规则的 ` LIKE ` 比较
69+ - 全文搜索使用集群默认排序规则提供程序
70+ - 认证和安全
71+ - OAuth 2.0 认证支持
72+ - FIPS 模式验证
73+ - TLS v1.3 密码套件配置 ` ssl_tls13_ciphers `
74+ - 弃用 ` md5 ` 密码认证,推荐使用 SCRAM
75+ - ` pgcrypto ` 支持 SHA-2 加密
76+ - 复制增强
77+ - 逻辑复制写冲突报告
78+ - ` CREATE SUBSCRIPTION ` 默认使用并行流
79+ - ` pg_createsubscriber ` 支持 ` --all ` 标志
80+ - 自动删除空闲复制槽
81+ - 维护和可观测性
82+ - 主动冻结更多页面,减少 vacuum 开销
83+ - ` EXPLAIN ANALYZE ` 显示缓冲区访问信息
84+ - ` EXPLAIN ANALYZE VERBOSE ` 包含 CPU、WAL 和平均读取统计
85+ - ` pg_stat_all_tables ` 增加 vacuum 操作时间统计
86+ - 其他重要变更
87+ - 默认启用页面校验和
88+ - 新的 PostgreSQL 线协议版本 3.2
89+ - 硬件加速支持 ARM NEON 和 SVE CPU 指令
90+ - 参考
91+ - [ PostgreSQL 18 Released!] ( https://www.postgresql.org/about/news/postgresql-18-released-3142/ )
4692
4793## PostgreSQL 17
4894
49- - libpq 支持 TLS ` ?sslnegotiation=direct `
50- - https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLNEGOTIATION
95+ - 内存管理优化
96+ - 新的 ` VACUUM ` 内存管理系统,减少内存消耗并提升整体 vacuum 性能
97+ - SQL/JSON 增强
98+ - 新的 SQL/JSON 功能,包括构造函数、标识函数
99+ - ` JSON_TABLE() ` 函数,将 JSON 数据转换为表表示
100+ - 查询性能改进
101+ - 使用流式 I/O 的顺序读取性能提升
102+ - 高并发下的写入吞吐量提升
103+ - btree 索引中多值搜索优化
104+ - 逻辑复制增强
105+ - 故障转移控制
106+ - ` pg_createsubscriber ` 工具,从物理备用服务器创建逻辑副本
107+ - ` pg_upgrade ` 现在保留发布者的逻辑复制槽和订阅者的完整订阅状态
108+ - 支持未来主版本升级时继续逻辑复制而无需重新同步
109+ - 客户端连接优化 - libpq 支持 TLS ` ?sslnegotiation=direct `
110+ - 执行直接 TLS 握手,避免往返协商
51111 - alpn postgresql
52- - 旧版本 应用层实现的 SSL - 无法利用现有基础设施
112+ - 旧版本应用层实现的 SSL - 无法利用现有基础设施
113+ - ` ?sslnegotiation=direct&sslmode=require `
114+ - https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLNEGOTIATION
53115 - https://www.postgresql.org/docs/17/protocol-flow.html#PROTOCOL-FLOW-SSL
54116 - PGJDBC v42.7.4
55117 - https://github.com/pgjdbc/pgjdbc/pull/3252
56118 - https://github.com/pgjdbc/pgjdbc/blob/master/pgjdbc/src/main/java/org/postgresql/PGProperty.java#L696
57119 - nodejs pg https://github.com/brianc/node-postgres/issues/3346
58- - ` ?sslnegotiation=direct&sslmode=require `
59- - ` JSON_TABLE() `
60- - ` pg_createsubscriber `
61- - ` pg_basebackup ` 支持增量
62- - ` COPY ON_ERROR ignore `
120+ - 备份和恢复
121+ - ` pg_basebackup ` 支持增量备份
122+ - 数据导入导出
123+ - ` COPY ` 新增 ` ON_ERROR ignore ` 选项,允许在出错时继续复制操作
124+ - 优化器改进
125+ - 允许优化器通过考虑早期行输出子句中引用列的统计信息和排序顺序来改进 CTE 计划
126+ - 改进 ` IS NOT NULL ` 和 ` IS NULL ` 查询限制的优化
127+ - 允许在布尔列上进行分区修剪,支持 ` IS [NOT] UNKNOWN ` 条件
128+ - 改进使用包含操作符 ` <@ ` 和 ` @> ` 时的范围值优化
129+ - 允许相关 ` IN ` 子查询转换为连接
130+ - 改进分区表、继承父表和 ` UNION ALL ` 查询的 ` LIMIT ` 子句优化
131+ - 允许查询节点在更多情况下并行运行
132+ - 允许 ` GROUP BY ` 列内部排序以匹配 ` ORDER BY `
133+ - 允许 ` UNION ` (无 ` ALL ` )使用 MergeAppend
134+ - 索引优化
135+ - 允许 btree 索引更高效地查找一组值,如 ` IN ` 子句提供的常量
136+ - 允许使用并行工作器创建 BRIN 索引
137+ - 允许 GiST 和 SP-GiST 索引成为增量排序的一部分
138+ - 兼容性变更
139+ - 维护操作期间使用安全 search_path 的函数变更
140+ - 限制 ` ago ` 仅出现在 ` interval ` 值的末尾
141+ - 移除服务器变量 ` old_snapshot_threshold `
142+ - 更改 ` SET SESSION AUTHORIZATION ` 处理初始会话用户的超级用户状态
143+ - 移除模拟每数据库用户的功能 ` db_user_namespace `
144+ - 移除 adminpack contrib 扩展
145+ - 移除 Windows 上的 ` wal_sync_method ` 值 ` fsync_writethrough `
63146- 参考
64- - https://www.postgresql.org/docs/current/release-17.html
147+ - [ PostgreSQL 17 Release Notes ] ( https://www.postgresql.org/docs/current/release-17.html )
65148
66149## PostgreSQL 16
67150
79162 - libpq
80163- ` GRANT role_a TO role_b ` 支持 ` INHERIT | SET `
81164- 参考
82- - https://www.postgresql.org/about/news/postgresql-16-released-2715/
165+ - [ PostgreSQL 16 Released ] ( https://www.postgresql.org/about/news/postgresql-16-released-2715/ )
83166
84167## PostgreSQL 15
85168
0 commit comments