Postgres17带来JSON、备份等方面的改进

在过去几年里,Postgres 一直是全球增长最快的数据库,因为从事务处理到分析和人工智能等各种工作负载,企业都在寻求使用普通数据存储。随着Postgres 17的推出,Postgres用户获得了大量新功能,包括改进的真空功能、更快的备份/恢复、新的 JSON 表功能、对子事务的支持,以及数百项较小的增强和错误修复。

Postgres17中的一些增强功能将带来全系统性能的提升,包括真空进程的新内部内存结构,其内存消耗比以前的版本最多可减少20倍。根据 PostgreSQL 全球开发小组关于新版本的新闻稿,新的内存结构将加快真空进程,同时减少关键真空进程对其他工作负载的影响。

根据Stack Overflow最近的一项调查,Postgres是最流行的数据库

PostgreSQL 全球开发小组表示,Postgres 17中对预写日志(WAL)的增强将有助于把高并发工作负载的吞吐性能提高一倍,而使用 “IN ”子句和B树索引的标准 SQL 查询将获得更快的结果。BRIN(块范围索引)索引将支持并行构建,而查询规划器也将得到各种增强。对SIMD(单指令/多数据)的支持将加速计算,包括 AVX-512 的使用。

EnterpriseDB的员工为第 17 版的几项新功能做出了贡献,包括支持块级增量备份,这将大大加快备份和恢复的速度。在一个案例中,Postgres备份从以前的70分钟缩短到4分钟,减少了95%。

据EDB数据库服务器和工具高级副总裁Tom Kincaid称,增量备份是此次发布的最大功能。“数据库已经存在了20多年,却没有增量备份功能,这很奇怪。”Kincaid告诉BigDATAwire,“一直以来,备份都是通过外部工具完成的,这些工具会查看数据库和文件系统。但现在它已经进入了核心。”

他说,新的 “pg_combinebackup ”工具还能让客户从多个增量备份中创建完整备份,这将为拥有海量数据大型数据库的客户节省大量时间。

EDB开发人员还为Postgres 17中子事务支持的改进做出了贡献。在某些类型的事务性工作负载中,特别是在金融服务领域,单个事务可能会被分解成100个或更多的子事务。Kincaid 说,在以前的版本中,数据库在处理这些子交易时会变得非常缓慢,导致数据库无法使用。

“因此,在从传统数据库迁移大量应用程序时,必须对应用程序进行大量更改,才能成功迁移到 Postgres。”他说,“有了(Postgres 17 的)这一增强功能,你可以调整缓存,完全不必更改应用程序。“

Postgres 17还带来了各种JSON增强功能,包括支持SQL/JSON标准,该标准是ISO SQL: 2023规范的一部分。SQL/JSON将提高Postgres用户使用常规机制分析以JSON形式存储的数据的能力(该数据库自2012年起就支持JSON)。

“它能有效地将JSON文档转换成关系表,”Kincaid说。“如果你有一个非常复杂的 JSON 文档,你可以运行JSON表功能,现在你可以连接它,执行各种标准SQL,并在其上运行 CTE(通用表表达式)。经常使用 SQL 的数据库开发人员不必学习JSON和JSON路径的所有复杂知识。他们只需继续使用自己的普通语言即可。”

Postgres 17的另一个重大改进是逻辑复制的改进。在以前的版本中,当进行重大数据库升级时,客户必须使用逻辑复制插槽,这就需要重新同步数据。在第17版中,不再需要逻辑复制插槽,从而简化了重大数据库升级。

该版本中的新故障转移控件将改进逻辑复制在高可用性方面的使用,使客户的 Postgres 部署更具弹性。Postgres 社区还创建了一个新的命令行工具,用于将物理复制转换为逻辑复制。

“PostgreSQL17突显了推动PostgreSQL开发的全球开源社区如何构建增强功能,帮助用户在数据库之旅的各个阶段获得帮助,”PostgreSQL核心团队成员Jonathan Katz在PostgreSQL全球开发组新闻稿中说。“无论是对大规模运行数据库的改进,还是基于令人愉悦的开发者体验的新功能,PostgreSQL 17都将提升你的数据管理体验。”

打开APP阅读更多精彩内容