
PostgreSQL 的每一次版本迭代都为开发者和企业带来令人期待的技术突破。从去年发布的 PG 18 到即将到来的 PG 19,新特性层出不穷——异步 I/O 让云上性能飞跃,内核级 REPACK 解决表膨胀痛点,图查询能力为 AI 时代铺路。但面对如此多的更新,哪些特性真正值得关注?企业什么时候该升级?如何参与到这个充满活力的开源社区?
「YOLANDA 科技见闻」独家专访 HOW 2026(开源生态大会暨 PostgreSQL 高峰论坛)三位深耕 PG 多年的技术专家,IvorySQL专家顾问委员、PostgreSQL ACED、前阿里云数据库高级专家德哥,云和恩墨高级数据库技术顾问、IvorySQL 专家顾问委员彭冲,PostgreSQL ACE、PG分会西安用户组主席、 【PostgreSQL 运维之道】主理人杨向博,墨创数迹创始人汪丹(Yolanda)主持,共同为你解读 PG 18 的“真香”时刻,前瞻 PG 19 的重磅更新,并分享实用的企业升级策略与社区贡献指南。
划重点:
让德哥觉得“真香”的第一个能力是 PG 18 支持了异步I/O。
现在很多数据库是跑在云上的,云上数据库和线下部署完全是两回事。在本地部署中,数据库直接访问 SSD,I/O 延迟通常在微秒级别。但云上存储会用云盘,云盘底层要通过网络去访问,网络延迟相较于本地部署会高很多。像创建索引、垃圾回收、大表扫描、分析型查询等大 I/O 访问量操作,在 PG 18 之前都使用同步 I/O,数据库进程的大量时间都耗费在网络等待上。PG 18 支持异步 I/O 子系统改变了这个局面,这些大 I/O 访问操作的性能提升立竿见影。
德哥分享的第二个特性和大版本升级有关,可能应用不多,但非常有价值,比如云厂商就会比较激进地提供大版本升级能力。一般来说,大版本升级有两种方式,一种是通过逻辑复制,复制后做切换,不过这种方式有比较严苛的适应场景,要求所有表都要有主键,同步过程中一些不可抗因素也会导致切换后数据不一致。
另外一种是通过 pg_upgrade 直接导出元数据,然后在大版本上面导入新的元数据,这种方式被诟病的地方就是统计信息导不过去,如果升级之后立马开放给用户使用,执行计划就可能不准确。特别是如果遇到业务高峰,或者有一些乱查询,由于没有统计信息往往导致执行计划不准,这种请求多起来的话,很可能带来雪崩效应。PG 18 引入了保留统计信息的能力,彻底解决了这个问题。执行计划不会因为升级而退化,避免了“升级即事故”的风险,这对于无法承受长时间维护窗口的企业级应用来说,是一个质的飞跃。
disabled_nodes,精准控制执行计划向博分享了一个可能会被大家忽略掉、但站在 DBA 角度看非常有用的特性。具体来说,就是 SQL 执行计划会跑偏,这是一个让 DBA 很头疼的问题。怎么办呢?对于一些可以改 SQL 的业务来说,可以走逻辑优化的路径。但对于很多 SaaS 业务,定制化 SQL 改不了,一般就用 hint 提示的手段去做执行计划的修正。
可能会遇到这样的场景:当你指定一个表走更优的索引时,有时会发现它不但没走索引,反而走了顺序扫描。这个路径是怎么被选出来的?PG 17 及以前版本通过disable_cost给一个路径的启动代价加上一个 100 亿的常量值,以此来干预路径选择,方式“粗暴且不优雅”,当多个路径都被加上这个巨大的常量后,原本差距明显的路径可能只相差 1%,它们之间的相对差异反而变得模糊,可能导致干预失效,最终选错了路径。
PG 18 完全去掉了disable_cost这个历史包袱,把它转化成disabled_nodes,一个 int 值,默认为 0,当你禁用一个设置时,对应路径的 node 值加 1,并且这个值会层层向上传递。这样,就可以精确地比较不同路径的干预程度,而不是依赖模糊的代价估算,能更精准地控制执行计划。
pg_overexplain,诊断执行计划彭冲补充了一个和执行计划相关的特性,这是 PG 18 引入的 一个扩展功能,pg_overexplain,以一种更结构化、更精准的方式,输出深藏在内核数据结构中的信息,用来深度剖析优化器的内部决策过程,做一些内核相关的优化,可以帮助诊断执行计划。

对于 PG19,德哥一直在跟进它的 Git 提交记录,从 2600 多个 Commits 中筛选了好几道,最开始筛出来 100 多个,觉得都特别有价值,德哥重点分享了几个对他来说冲击比较大的新能力。
REPACK CONCURRENTLY使用 PG 的一个痛点就是它的事务 ID 只有 32 位,容易用完,所以必须不断地做“冻结”操作。另外就是 PG 的存储引擎,没有 Undo 回滚段,所有垃圾都放在数据文件里,和正常的数据放在一起,就要不断地做垃圾回收。一旦表膨胀了就会很麻烦,特别是在云服务里,存储都得额外算钱,那每月的账单就要滴血,压缩膨胀空间就很关键。怎么办?原来是通过第三方的pg_repack插件来解决,PG 19 把REPACK CONCURRENTLY做到内核里来了。以后我们就可以很放心地使用REPACK CONCURRENTLY了,不用担心第三方工具的兼容和维护等问题,这是一个极大的利好。
AI 时代,图查询是一个非常重要的特性。比如我们使用 Agent 的时候,使用越多,它堆积的记忆就越多,包括 Agent 去连接各种外部知识库,这些数据也非常复杂。以前 PG 只能提供一些向量搜索、关键词搜索、全文检索,但实际上来看,知识很多时候是树状结构的,也就是图结构。这时候,很多企业可能会选择额外再搭一套图数据库,就会导致一些数据可能是重复的,浪费企业资源。
PG 19 终于把图查询的功能引进来了,在 AI 场景存储记忆、存储外部知识库,这是一个很有必要的、很高级功能。 德哥相信,将来的 AI 应用在使用数据库的时候,都可能把这块功能给用起来。
WAIT FOR比如读写分离场景,当业务要求只读查询和之前写入变更的事务之间必须有一个前后顺序,很多时候我们的查询不能发到只读库,因为不知道只读库回放到什么时候了,有没有把之前的修改回放过去,这种情况下,压力还是得压到主节点。
PG 19 有了 WAIT FOR,当我们做读写分离的时候,可以先做预判,判断一个只读节点是否已经同步了之前写入的事务,检查回放进度 LSN,回放到了,就把后面的请求转发给这些只读节点。这是一个很好的特性,值得我们持续关注后续应用。
VACUUM性能优化和逻辑复制功能完善当一个表有很多索引时,特别是大表,以前每个索引是顺序地(一个一个)做垃圾回收, PG 19 的 autovacuum 可以并行地对多个索引同时做垃圾回收 ,这能大大缩短垃圾回收的总时间。
对于逻辑复制功能,不支持复制序列(SEQUENCE),在 PG 19 里这个功能也补充上了。

PG 19 要来了,不过很多用户使用比较多的版本还是 PG16、PG17,大家对于新版本用得还不多,毕竟在生产环境下需要一个小心谨慎的态度。具体什么时候应该升级?怎么用好新版本的能力?三位专家也根据具体场景给出了一些升级建议。
场景 1:云部署 + 大 I/O 操作
场景 2:表膨胀困扰
场景 3:信创 + 跨 CPU 架构
场景 4: AI 应用(Agent) + 知识图谱
具体场景挑战很多,比如逻辑复制引起磁盘堆积问题、数据库拷贝难题、外部表安全问题等等,根据自身业务的痛点和 PG 版本能力做匹配,是一种可靠的判断逻辑。
另外,对于升级原则,德哥还分享了一个他的思路。对于相对传统一点的企业,如果业务迭代速度或者变化节奏不是特别快,不用太着急去升级,遇到特别大的痛点,新版本能很好解决,这时候再考虑升级。对于业务本身变化极快的企业,可以考虑更快地使用新版本带来的新特性,比如 PG 19 的图查询能力,可以给 AI Agent 相关的业务带来极大助力,帮助提升应用的竞争力,那就可以偏激进一点去使用新版本。
PG 社区对新人非常友好,包容性强,那如何更好地在社区做共享?怎样参与到 PG 下一个版本的新特性开发中?三位深耕于 PG 社区多年的专家分享了他们的经验与建议。
从 PG 18 到 PG 19,PostgreSQL 的每一个特性都经历了反复讨论与充分验证。PG 不追求激进的创新,而是在稳定性的基石上,稳步演进至最佳实践。这种务实的进化哲学,或许正是 AI 时代我们真正需要的。PG 19 将成为一个新的起点,未来,AI 时代下数据库的更多可能性、更令人激动的篇章,值得共同期待。
4 月 27 - 28 日,1 场主论坛+12 大主题分论坛,覆盖数据库技术的关键路径与前沿方向,一次性展开 PostgreSQL 在当下与未来的完整技术版图。欢迎报名参加,我们济南见。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。