PostgreSQL 18 已发布,新增多项功能,包括异步 I/O、升级后性能提升以及文本处理改进。
异步 I/O 允许 PostgreSQL 同时发起多个 I/O 请求,而不是等待一个请求完成后再开始下一个。据 PostgreSQL 团队介绍,这提高了整体吞吐量,在某些场景下性能提升高达 3 倍。
此前,PostgreSQL 使用操作系统的预读机制进行数据检索,但由于操作系统无法洞察数据库特定的访问模式,无法始终预测需要哪些数据,导致在许多工作负载下性能不佳。团队解释称,异步 I/O 正是为了应对这一限制而创建。
此版本还引入了在主要版本升级后保留规划统计信息的能力,而此前这些信息不会保留。这有助于升级后的集群在升级后更快达到预期性能。
文本处理也得到改进,新增的 PG_UNINCODE_FAST 排序规则为大小写转换提供了完整的 Unicode 语义。PostgreSQL 18 还支持对使用非确定性排序规则的文本进行 LIKE 比较,简化了复杂模式匹配。此外,全文搜索现在使用排序规则的默认排序提供程序,而非 libc。
此版本还重点关注了开发者体验,新增了虚拟生成列(在查询时计算值)、在 WITHOUT OVERLAPS 子句中为 PRIMARY KEY 和 UNIQUE 约束添加时间约束,以及支持使用 CREATE FOREIGN TABLE … LIKE 命令根据本地表的定义创建外表的模式定义。
PostgreSQL 18 的性能改进包括:多列 B-tree 索引上的跳过扫描查找以改善查询执行时间、优化使用 WHERE 中 OR 条件的查询的索引,以及改进 PostgreSQL 规划和执行表连接的方式。此版本还支持硬件加速,包括支持 ARM NEON 和 SVE CPU intrinsics 用于 popcount 函数。
此版本的其他更新包括支持 OAuth 2.0、支持在日志中报告逻辑复制的写入冲突,以及在 vacuum 期间主动冻结页面。
“全球开源社区的努力塑造了每一个 PostgreSQL 版本,并帮助交付满足用户数据驻留需求的功能,“PostgreSQL 核心团队成员 Jonathan Katz 表示。“PostgreSQL 18 建立在项目悠久而丰富的历史基础上,提供可靠且稳健的数据管理体验,同时继续扩展其支持的工作负载。”
完整更新列表可在发布说明中找到。