9 月 24 日,PostgreSQL 19 的第四个 beta 版放出。按社区节奏,RC1 排在 10 月 15 日,GA 预计 10 月内。这个版本本来要带几条很吸睛的大特性,Beta 4 公告里社区干的头一件事是砍功能。
被回退的清单挺长:SQL/PGQ(属性图查询,把图查询语法塞进标准 SQL 的那套)整体回退;在线开关 data checksums 的能力回退;FOR PORTION OF子句提供的时序更新/删除回退;ALTER TABLE ... MERGE PARTITIONS和SPLIT PARTITIONS回退;pg_get_role_ddl()、pg_get_tablespace_ddl()、pg_get_database_ddl()这几个函数被移除;还有一条把 postmaster 进程的LC_COLLATE强制设为C的改动也回退了。
官方给的理由写得很直白:社区坚信 PostgreSQL 把可靠放在发布节奏前面,没打磨好的特性宁可挪到以后的大版本。SQL/PGQ 这种听起来很性感的图查询能力,在 beta 阶段被拎出来说“还没准备好”,对一个多年没怎么砍过东西的数据库项目来说,是个不常见的信号。属性图查询本身还在 SQL 标准的磨合期,社区选择让它在后续大版本里把语义和生态打磨透,而不是赶 19 这趟车。
砍掉的同时,Beta 4 把一批更朴素、开发者每天都用得上的东西留下了,值得一条条看。
REPACK 命令是这批里分量很重的一个。PostgreSQL 长期有个痛点:表里死元组多了、索引膨胀了,想物理整理一遍,传统做法是CLUSTER或VACUUM FULL,前者要重排索引后者要锁表,业务高峰期基本没法跑。新版本给 REPACK 加了CONCURRENTLY选项,重打包过程不阻塞读写。Beta 4 还顺手修了 REPACK 在无效索引、物化视图上的崩溃和权限问题——这个功能从 beta1 到 beta4 一直在被真实测试打磨,不是新塞进来的。对跑过大规模库的 DBA 来说,这条命令解决的是长期排期难题:以前做一次物理整理,得挑业务低峰、停写、跑几小时、再验证;现在 REPACK 带CONCURRENTLY,可以挂在后台窗口里慢慢跑,读写流量不受影响,出问题回滚的代价也小得多。
WAIT FOR 是另一条新命令,Beta 4 修过一次死锁和隔离级别报错的提示,用法是让会话等某个事务完成再往下走,逻辑复制场景里排障能省不少事。
SQL 语法侧的小改进更接地气。新版本引入GROUP BY ALL,把所有非聚合、非窗口的输出列自动塞进 GROUP BY,写报表查询少手搓一列;upsert 操作支持INSERT ... ON CONFLICT DO SELECT ... RETURNING,冲突行也能原样返回给应用,省掉一次回查。逻辑复制现在会连序列值一起复制,wal_level设成replica时还能不重启就开启。以前用逻辑复制做读写分离或灰度切换,自增主键在备库继续写入会撞号,应用得自己绕;现在序列值跟着流走,这个老坑被官方填上了。
性能侧的改动偏底层:外键约束检查提速、autovacuum 评分系统重写(连 TOAST 表的评分都修过)、COPY FROM走 SIMD 优化、元组 deform 加速、基数排序。这些东西用户感知不到,DBA 能在压测报告里看出来。autovacuum 评分系统这条值得多讲一句:以前 vacuum 该不该跑、先跑哪个表,靠一套沿用多年的启发式规则,大表小表混在一起容易出现“该收的不收、不该收的反复扫”;19 把评分逻辑重写了一遍,Beta 4 还专门修过 TOAST 表的评分偏差,后台清理的优先级更贴近真实负载。
节奏上也值得对一下表。19 的 beta 从 6 月 4 日 Beta 1 开始,7 月 16 日 Beta 2,8 月 13 日 Beta 3,9 月 24 日 Beta 4,RC1 排在 10 月 15 日,GA 紧随其后。这套“六周一 beta”的节奏在过去几个大版本里保持得很稳,Beta 4 主动砍特性,恰恰说明社区不想为了赶 GA 日期把没打磨完的东西塞进来。
这套“砍大牌特性、留日常工具”的取舍,对正在评估升级的团队有实际含义。GA 之后先别急着上生产,RC1(10 月 15 日)到 GA 这两三周里还会有补丁;Beta 4 的回退清单也说明,19 是个“稳字优先”的版本,升级收益主要落在运维侧(不停机重打包、逻辑复制开箱即用),而不是 SQL 语法的花样翻新。对中小团队来说,等到 19.1 或 19.2 补丁版再动,是更稳妥的节奏。
如果手头有测试环境,Beta 4 这版值得拉一份跑一遍自己的典型负载,重点盯三块:REPACK 在你们体量靠前的几张表上能不能跑完整、逻辑复制切到 19 之后序列值对不对得上、外键约束检查提速有没有在你们的 schema 上带来预期收益。这些反馈直接进社区的 open items 清单,也决定了 GA 版本的实际稳定程度。
本文为行业科普分享,所涉观点仅代表作者个人理解,不构成任何投资、消费、医疗建议。文中提及的产品、地点、数据均来自公开渠道或作者亲身体验,或随时间变化。读者据此操作风险自担。