内容提要
2026年10月爱丁堡PostgreSQL聚会回顾:Elizabeth Christensen介绍PostgreSQL 18与19新特性。19因大量功能回退而延期,体现项目健康;18已发布值得升级,19值得测试。重点特性包括uuidv7()、虚拟生成列、REPACK、OAuth 2.0、异步I/O和B树跳跃扫描。另有pg_lakekeeper闪电演讲,介绍将Iceberg目录作为扩展运行于Postgres内。
延伸解读
19延期与功能回退:项目健康的信号
PostgreSQL 19原计划10月底发布,但beta期间大量功能被回退,导致延期。演讲者Elizabeth Christensen认为这是项目健康的体现,因为流程及时发现了问题,部分功能如SQL属性图查询已重新排入20版本。对用户而言,这意味着不必急于升级到19,但参与beta测试是低成本贡献方式,借助社区包、Docker或Postgres.app几分钟即可搭建环境。
18升级的实用收益与注意事项
已发布的PostgreSQL 18值得升级,亮点包括uuidv7()、虚拟生成列、RETURNING中的OLD/NEW、WITHOUT OVERLAPS时态主键、OAuth 2.0认证以及异步I/O。异步I/O仅在真正访问磁盘时才有帮助,这是需要留意的限制。同时MD5密码被弃用,文章建议用查询找出仍在使用MD5的账户,升级前应处理这些遗留配置。
管理工具与实验性功能:REPACK和计划建议
19版本引入REPACK(含CONCURRENTLY)作为表膨胀的内置解决方案,但演讲者建议先调优autovacuum,仅在不够用时才使用REPACK;同版本还有并行autovacuum worker。实验性功能方面,pg_plan_advice提供计划建议,EXPLAIN可自动生成建议,但文章坦率讨论了实际需要它的场景,读者应将其视为探索性工具而非默认选择。
扩展生态:从pg_lakekeeper看Postgres边界扩展
闪电演讲介绍了pg_lakekeeper项目,目标是将Apache Iceberg REST目录作为扩展运行在Postgres内,而非旁边。第一阶段以只读SQL视图覆盖Lakekeeper现有schema,后续用pgrx将Lakekeeper编译进扩展,使目录提交能与用户SQL写入共享事务。第一阶段PR已就绪。这呼应了演讲总结:扩展生态不断拓宽“Postgres”的含义,值得关注其进展。
Q&A
PostgreSQL 19 为什么延期了?
PostgreSQL 19 在 beta 阶段回退了大量功能,因此延期发布。演讲者 Elizabeth Christensen 认为这体现了项目的健康,因为流程及时发现了问题,部分功能(如 SQL 属性图查询)已重新排期到 PostgreSQL 20。
PostgreSQL 18 有哪些值得升级的新特性?
PostgreSQL 18 的新特性包括:uuidv7()、虚拟生成列、RETURNING 中的 OLD 和 NEW、WITHOUT OVERLAPS 时态主键、异步 I/O、B 树跳跃扫描、更快的 GIN 和 GiST 索引构建、OAuth 2.0 认证,以及 MD5 密码弃用。
PostgreSQL 19 中 REPACK 命令有什么作用?
REPACK 是 PostgreSQL 19 内置的解决表膨胀问题的命令,支持 CONCURRENTLY 选项。建议先调整 autovacuum,只有在其不够用时才使用 REPACK。同版本还引入了并行 autovacuum worker。
pg_lakekeeper 是什么项目?
pg_lakekeeper 是一个新项目,旨在将 Lakekeeper(Apache Iceberg REST 目录)作为 PostgreSQL 扩展运行在数据库内部,而不是旁边。第一阶段提供只读 SQL 视图,后续计划用 pgrx 将 Lakekeeper 编译进扩展,使目录提交能与用户 SQL 写入共享事务。
如何参与 PostgreSQL beta 测试?
参与 beta 测试是最简单的贡献方式之一,使用社区软件包、Docker 或 Postgres.app 只需几分钟即可完成。
PostgreSQL 19 有哪些实验性功能?
PostgreSQL 19 引入了实验性的计划建议功能 pg_plan_advice,EXPLAIN 可以生成建议。此外,SQL/PGQ 属性图查询从 19 中回退,目前可用 Apache AGE 在 Postgres 内使用 Cypher。