华象新闻 | PostgreSQL 18 Beta 1、17.5、16.9、15.13、14.18、13.21 发布
2025 年 5 月 8 日,PostgreSQL 全球开发小组宣布,PostgreSQL 18 的第一个预览版本开放下载。同时,针对现在所有支持中的 PostgreSQL 版本进行更新,包括 17.5、16.9、15.13、14.18 和 13.21。PostgreSQL 13 将于 2025 年 11 月 13 日发布最后一个版本,建议将生产环境中运行的 PostgreSQL 13 进行大版本升级。PostgreSQL 18 功能亮点
PostgreSQL 18 在性能、主版本升级体验、开发者体验、安全特性、监控与可观测性等方面都有诸多改进和新特性。以下是 PG 18 计划推出的主要功能亮点。
性能
引入异步 I/O(AIO)子体系:该子体系能够提升 I/O 吞吐量并降低 I/O 延迟。Linux 体系 io_uring 支持 AIO,所有平台均提供基于 Worker 的实现。初始版本支持文件体系读取,比方顺序扫描、位图堆扫描和清理,测试表现性能提升高达 2-3 倍。
查询优化与新索引特性:支持在多列 B 树索引上使用 “跳查扫描” 查找,以收缩在一个或多个前缀索引列上省略“=”条件的查询的执行时间。此版本还包含对WHERE包含“OR和IN (…)”语句的子句的优化,以便更好地利用最新的索引改进,从而提升查询性能。在表连接的规划和执行方面有诸多性能改进,从提升哈希连接的整体性能到答应归并连接使用增量排序。
其他性能提升:支持 GIN 索引的并行构建,提高处理 JSON 和全文数据的搜索效率。答应定义非 B 树的唯一索引的分区键和物化视图。提高了访问多个关系的查询的整体锁定性能,并对分区表查询进行了多项改进,包括改进的修剪和连接支持。在文本处理方面也有性能提升,如加速 upper/lower 函数,新增内置的 PG_UNICODE_FAST 排序规则。
大版本升级体验
保存规划器(planner)统计信息:在 PostgreSQL 18 之前,主版本升级后需运行 ANALYZE 生成统计信息以帮助 PostgreSQL 选择最有效的查询计划,这大概耗时且影响查询性能。PostgreSQL 18 答应在主版本升级过程中保存规划器统计信息,使升级后的集群更快达到预期性能状态。
pg_upgrade 性能加强:pg_upgrade 工具增长了多项性能加强功能,可加速包含许多对象(如表和序列)的升级。此版本还答应 pg_upgrade 根据 --jobs 标志的设置并行处理其检查,并增长了 --swap 标志,用于交换升级目次,而不是复制、克隆或链接文件。
开发者体验
引入虚拟生成列:PostgreSQL 18 引入虚拟生成列,在查询执行期间即时计算列值,无需存储,这成为生成列的默认选项。别的,存储的生成列可以进行逻辑复制。
加强 RETURNING 子句功能:在 INSERT、UPDATE、DELETE 和 MERGE 命令的 RETURNING 子句中,可访问前值(OLD)和当前值(NEW)。
支持 UUIDv7 生成:通过 uuidv7() 函数支持 UUIDv7 生成,可创建按时间顺序分列的随机 UUID,以支持更好的缓存策略,同时添加 uuidv4() 作为 gen_rand_uuid 的别名。
安全特性
OAuth 认证:PostgreSQL 18 引入 OAuth 认证,答应用户通过 PostgreSQL 扩展支持的 OAuth 2.0 机制进行身份验证。
FIPS 模式与 TLS 配置:添加多项功能以验证和逼迫执行 FIPS 模式活动,并添加 ssl_tls13_ciphers 选项,答应用户配置服务器可以使用的 TLS v1.3 暗码套件。
认证相干更新:弃用 md5 暗码认证,未来主版本发布将完全移除 md5 认证,转而支持使用初次在 PostgreSQL 10 中引入的 SCRAM 认证。同时,添加对 SCRAM 传递认证的支持,当通过 postgres_fdw 和 dblink 认证到远程 PostgreSQL 实例时进行身份认证。
监控与可观测性
EXPLAIN 工具加强:PostgreSQL 18 为 ·EXPLAIN· 工具添加更多详情,执行 EXPLAIN ANALYZE 时主动表现访问的缓冲区数量,还表现索引扫描期间发生的索引查找次数,EXPLAIN ANALYZE VERBOSE 包含 CPU、WAL 宁静均读取统计信息。
表统计与连接统计信息:在 pg_stat_all_tables 中提供有关清理和分析表所泯灭的总时间的信息,并表现每个连接的 I/O 和 WAL 利用统计信息。
逻辑复制写辩论洞察:提供更多关于逻辑复制期间发生的写辩论的洞察,并在日志和 pg_stat_subscription_stats 视图中表现此信息。
完整的新功能和改进功能列表,请参阅发行分析:
https://www.postgresql.org/docs/18/release-18.html
更多新版本洞察,请参考彭老师的文章:
PG18 beta 版发布 | 兼容性解读 附9~17不兼容民间案例:JDBC-硬限定、分区表-DDL等待…zip请查收~
PostgreSQL 17 主要更新
安全弊端 CVE-2025-4207
PostgreSQL GB18030 编码验证中的缓冲区过分读取弊端答应数据库输入提供程序在单字节过分读取即可导致进程终止的平台上实现暂时拒绝服务。这会影响数据库服务器以及 libpq。PostgreSQL 17.5、16.9、15.13、14.18 和 13.21 之前的版本均受影响。
CVSS v3.1 根本评分:5.9
错误修复和改进
此次 PostgreSQL 更新修复了超 60 个弊端,涵盖正确处理分区表自引用外键、办理 BRIN bloom 索引潜在数据丢失题目、逻辑复制相干修复等众多方面,提升了数据库的稳定性、数据安全性及性能。同时更新时区数据,新增及调整部分时区信息,以适应不同地区的时区变化环境,确保数据库在处理时间数据时的准确性。
下面列出影响 PostgreSQL 17 的部分题目,此中一些题目也大概影响其他受支持的 PostgreSQL 版本。
[*]正确处理分区表上的自引用外键 :在创建或附加分区时,假如约束所引用的表是同一个分区表,之前未能为外键约束创建所需的目次条目,导致约束无法完全生效。修复此题目的方法请参阅 “更新” 部分的分析。
[*]修复使用 BRIN bloom 索引时大概的数据丢失题目 :比方使用 date_bloom_ops 操纵符类时出现的题目。
[*]修复对分区表执行 MERGE 并带有 DO NOTHING 操纵的题目 。
[*]防止在插入命令中因表存在生成列为域类型且该域的约束不答应 NULL 值而导致的失败 。
[*]修复 ALTER TABLE .. ADD COLUMN 以正确处理具有默认值的域类型且未设置列的 DEFAULT 的环境 。
[*]修复在 JSON 构造表达式的键中进行类型转换时出现的题目 。
[*]修复 XMLSERIALIZE() 函数,使其在视图或规则中存在 INDENT 选项时能够正确转储该选项 ,在还原时该题目较为显着。
[*]进行了多项查询规划器修复 ,包括避免在同时具有 FILTER 和 ORDER BY 或 DISTINCT 子句的聚合函数中过早评估参数,这大概导致不须要的失败。
完整的发行分析拜见:
https://www.postgresql.org/docs/release/17.5/
AWS RDS 已支持最新小版本
Amazon Relational Database Service (RDS) for PostgreSQL 现已支持最新的次要版本 17.5、16.9、15.13、14.18 和 13.21。我们建议您升级到最新的次要版本,以修复 PostgreSQL 早期版本中已知的安全弊端,并受益于 PostgreSQL 社区添加的错误修复。此版本还包含 PostgreSQL 扩展的更新,比方 pg_repack 1.5.1、pg_logical 2.4.5 等。
您可以使用主动次要版本升级功能,在计划维护时段内主动将数据库升级到较新的次要版本。您还可以使用 Amazon RDS 蓝/绿摆设,通过物理复制进行 RDS for PostgreSQL 的次要版本升级。
通告原文:
https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-rds-postgresql-supports-new-minor-versions/
Have a nice day ~ ☕
页:
[1]