PostgreSQL 18性能大提升:异步I/O与多项优化功能解析

PostgreSQL 18正式发布,引入异步I/O功能可将性能提升高达3倍,同时支持规划器统计信息跨版本升级、改进文本处理功能、增强开发者体验和查询性能,全面优化数据库管理体验。

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建立在项目长期、丰富的历史基础上,提供可靠且强大的数据管理体验,同时继续扩展其支持的工作负载。”

完整更新列表可在发布说明中找到。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计