PostgreSQL 18 是近年来对底层性能改动最集中的一次升级。它不是加功能,而是把并行处理、I/O 模型、维护操作这几块最吃劲的环节一起往前推。
并行 VACUUM 解决什么
VACUUM 是 MVCC 的支柱,但长期以来清理工作主要由单进程承担。数据量小的时候没感觉,单表到几十 GB 之后,autovacuum 跟不上写入速度,表膨胀和索引膨胀就接踵而来。并行化直接降低大实例的日常维护负担,这是最实在的收益。
异步 I/O 解决什么
存储层吞吐足够但数据库读不满,是典型的同步 I/O 瓶颈。异步 I/O 让数据库可以同时发起多个读请求,在 NVMe 环境下提升明显。注意这是存储层的能力,如果你的盘本来就慢,提升有限。
增量排序的价值
对大数据集做排序、分组、去重,是报表和 OLAP 场景的高频操作。增量排序让这类查询不再动辄吃满 CPU 和临时磁盘。
升级前必须做的三件事
第一,扩展兼容性。pg_stat_statements、PostGIS、pgvector 这些要先确认有 18 的版本。第二,逻辑复制的槽位和订阅状态要提前检查,跨大版本升级时最容易在这里卡住。第三,统计信息在升级后需要重新收集,头几天的执行计划可能不理想,别急着下结论说新版本慢。
默认行为的变化要读 release notes
大版本升级里最容易踩的坑不是新特性,是默认值改了。比如某些参数的默认值调整、某些函数的行为边界。花二十分钟读一遍 release notes 的 incompatible changes 章节,能省掉一周的排查。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。