PostgreSQL 18 RC1: io_uring AIO, uuidv7, OAuth 和新的网络协议——GA 计划于 2025 年 9 月 25 日发布

PostgreSQL数据库DevOps

关键更新

PostgreSQL 全球开发组于 2025 年 9 月 4 日发布了 PostgreSQL 18 版本候选 1,计划于 2025 年 9 月 25 日正式发布。此版本带来了大量平台级的变化:一个新的异步 I/O 子系统(基于工作者的,支持 Linux io_uring),承诺在读取密集型负载中实现大幅的吞吐量提升,默认情况下虚拟生成列在查询时计算,支持 uuidv7(时间戳排序的 UUID),OAuth 认证扩展支持,更丰富的 EXPLAIN ANALYZE 输出,显示缓冲区/索引/WAL 指标,支持并行 GIN 索引构建,以及多个查询/优化器改进(跳过扫描 B 树查找,更好的 OR/IN 规划),还有一个新的 PostgreSQL 网络协议版本 3.2。新集群默认启用数据校验和。

重要性(实际评估)

这对生产后端和工具来说是一个真正的平台转折点。单独的异步 I/O 子系统可以显著减少 I/O 延迟,并提高读取和索引密集型工作负载的吞吐量——在大规模顺序扫描、位图堆扫描和 VACUUM 上期待可测的提升;云和块存储用户应根据实际工作负载进行基准测试,因为收益因存储和操作系统而异。新的网络协议和若干内部变化意味着客户端库、连接代理和连接池需要进行测试:虽然 libpq 默认与 3.0 兼容,但在升级生产数据库之前,驱动程序和代理需要验证 3.2 的功能和行为。

运营和迁移的影响是直接的。PostgreSQL 18 是一个主要版本:升级需要 pg_upgrade 或转储/恢复,并且您应该运行全面的兼容性测试。新集群默认启用数据校验和会影响初始化流程和镜像构建管道(您可以通过 initdb 标志选择退出,但 CI/自动化必须更新)。安全性变化——OAuth 支持和继续弃用 md5 认证以支持 SCRAM——意味着如果您仍依赖旧方法,应该现在就计划认证迁移。面向开发者的功能,如虚拟生成列、uuidv7 和增强的 EXPLAIN 诊断,都是实际的收益:虚拟列减少了计算值的存储和同步复杂性,uuidv7 有助于索引局部性和时间范围分片,更丰富的 EXPLAIN 输出使查询故障排除更快。

可行的下一步:在具有代表性的工作负载的暂存环境中运行 RC,验证您的客户端驱动程序/连接池和 ORM(包括 Node.js pg、服务器端连接管理器和任何代理),更新 CI 镜像以使用您希望用于校验和的 initdb 标志,并计划在 GA 日期(2025 年 9 月 25 日)周围的升级窗口。如果您依赖扩展,请确认与 18rc1 的兼容性,并关注扩展生态系统的更新。

来源

继续阅读