PostgreSQL 18 引入异步 I/O 以提升性能

PostgreSQL 18 正式发布,新增异步 I/O 功能,可同时发起多个 I/O 请求,提升吞吐量,性能最高提升3倍。此外还包括升级后保留规划统计信息、改进文本处理、支持虚拟生成列等开发者体验优化。

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

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

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