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