PostgreSQL 19: 即将推出的功能与社区期望

PostgreSQL 19: 即将推出的功能与社区期望

PostgreSQL 19 旨在优化开发人员的体验并将其数据库能力扩展到图处理和更高效的数据移动领域。即将发布的版本专注于减少 SQL 查询中的样板代码并降低备份和复制的操作开销。

关键功能增强

使用 GROUP BY ALL 简化查询语法

PostgreSQL 19 引入了 GROUP BY ALL,这是一个受 DuckDB 启发的功能,允许用户对所有非聚合列进行分组,而无需显式列出它们。这减少了查询的冗长性,并在修改复杂报告中的列选择时最大限度地减少了错误。

图数据库集成

该版本引入了 GRAPH_TABLE 语法,允许在关系模型中进行类图查询。这允许用户使用类似于 Neo4j 的语法在表之间进行模式匹配,尽管一些社区成员对该特定实现的冗长性和性能表示了担忧。

逻辑复制与 COPY 改进

通过对 COPY 命令和逻辑复制的增强,改进了操作工作流。这些更改旨在减少数据迁移和备份过程中的开销,解决管理大规模部署的用户面临的常见痛点。

社区技术批评与缺失的功能

虽然计划中的功能受到欢迎,但经验丰富的 PostgreSQL 用户已在当前的路线图中发现了几个关键差距:

存储引擎限制

对于处理日益庞大的数据集,对原生列式存储有着强烈的需求。用户指出,虽然存在 Citus 等扩展,但原生支持将降低架构复杂性和依赖风险。

"作为数据集变得越来越大,PG 的存储限制正变得越来越显著。我知道有各种扩展……但那样你就依赖于该扩展在未来的支持情况。"

此外,用户正在请求原生块压缩来取代当前的行级压缩,后者对于高容量数据往往是不够的。

时序数据与标准合规性

一些开发人员强调了缺乏基于 SQL:2011 标准的原生应用时间时序数据支持,这将允许进行更强大的历史数据跟踪。

操作与架构请求

在项目的当前轨迹中,有几个技术要求仍未得到解决:

  • 原地升级 (In-place Upgrades): 请求在连续的主要版本之间进行原生原地升级,以消除在容器化 (Docker) 环境中 pg_upgrade 的复杂性。
  • 连接开销: 对于每个并发连接的高内存占用,担忧仍然存在,这表明需要更轻量级的连接处理。
  • 同步物化视图 (Synchronous Materialized Views): 希望能够拥有“索引视图”(类似于 SQL Server),能够同步更新以确保复杂数据场景下的正确性。
  • 可插拔存储引擎: 对支持多种存储引擎(例如 RocksDB)的 MariaDB 风格架构的兴趣,以针对 OLTP、OLAP 或仅追加工作负载进行优化。

性能担忧

尽管增加了新功能,一些用户对 PostgreSQL 查询规划器 (planner) 的行为仍保持谨慎。具体而言,有报告称行级安全性 (RLS) 会导致规划器默认进行逐行匹配,这会显著降低生产环境中的性能。

Sources