This page in: Chinese / English / French / German / Greek / Hebrew / Indonesian / Italian / Japanese / Korean / Polish / Portuguese / Russian / Spanish / Swedish / Ukrainian

PostgreSQL 17 Press Kit

Contents

Original Press Release

2024 年 9 月 26 日 - PostgreSQL 全球开发组今日宣布发布 PostgreSQL 17,这是世界上最先进的开源数据库的最新版本。

PostgreSQL 17 建立在数十年的开源开发积累之上,在继续适应新兴数据访问与存储模式的同时,进一步提升了性能与可扩展性。这个版本的 PostgreSQL 带来了显著的整体性能提升,包括重构后的 vacuum 内存管理实现、面向高并发工作负载的存储访问优化、批量加载与导出加速,以及面向索引的查询执行改进。PostgreSQL 17 也为新工作负载与关键系统带来了同样有价值的能力,例如通过 SQL/JSON 的 JSON_TABLE 命令增强开发者体验,以及通过逻辑复制增强来简化高可用工作负载与主版本升级的管理。

PostgreSQL 核心团队成员 Jonathan Katz 表示:“PostgreSQL 17 充分展示了推动 PostgreSQL 持续发展的全球开源社区,如何为数据库使用过程中的各类用户构建真正有价值的增强能力。无论是支撑大规模数据库运行的性能改进,还是进一步强化开发者体验的新特性,PostgreSQL 17 都将全面提升您的数据管理体验。”

PostgreSQL 是一个以可靠性、健壮性和可扩展性著称的创新型数据管理系统。得益于全球开发者社区 25 年以上的开源开发积累,它已成为各类组织首选的开源关系型数据库。

系统级性能提升

PostgreSQL 的 vacuum 进程对于数据库健康运行至关重要,但它也需要消耗服务器实例资源。PostgreSQL 17 为 vacuum 引入了新的内部内存结构,最高可将内存消耗降至原来的 1/20。这不仅提升了 vacuum 的执行速度,也减少了对共享资源的占用,从而为业务负载释放出更多资源。

PostgreSQL 17 继续改进其 I/O 层性能。由于预写式日志WAL)处理得到优化,高并发工作负载的写入吞吐量最高可提升 2 倍。此外,新的流式 I/O 接口还加快了顺序扫描(读取整张表的数据)以及 ANALYZE 更新规划器统计信息的速度。

PostgreSQL 17 还将性能增益扩展到了查询执行层面。PostgreSQL 17 改进了使用 IN 子句且依赖 B-树 索引的查询性能;B-树是 PostgreSQL 默认的索引方法。此外,BRIN 索引现在也支持并行构建。PostgreSQL 17 还纳入了多项查询规划改进,包括对 NOT NULL 约束的优化,以及对公共表表达式WITH 查询)处理方式的改进。此版本还增加了更多 SIMD(单指令多数据)支持,例如利用 AVX-512 加速 bit_count 函数。

进一步扩展稳健的开发者体验

PostgreSQL 是首个引入 JSON 支持的关系型数据库(2012 年),而 PostgreSQL 17 则继续完善其对 SQL/JSON 标准的实现。现在,JSON_TABLE 已可在 PostgreSQL 17 中使用,使开发者能够将 JSON 数据转换为标准 PostgreSQL 表。PostgreSQL 17 还支持 SQL/JSON 构造函数JSONJSON_SCALARJSON_SERIALIZE)以及查询函数JSON_EXISTSJSON_QUERYJSON_VALUE),为开发者提供了更多与 JSON 数据交互的方式。此版本还增加了更多 jsonpath 表达式,重点加强了将 JSON 数据转换为原生 PostgreSQL 数据类型(例如数值、布尔值、字符串与日期/时间类型)的能力。

PostgreSQL 17 还为 MERGE 增加了更多功能,包括 RETURNING 子句以及更新视图的能力。除此之外,PostgreSQL 17 还为批量加载和数据导出带来了新能力:使用 COPY 导出大行数据时,性能最高可提升 2 倍。当源编码与目标编码一致时,COPY 的性能也会进一步提升;同时它还增加了新的 ON_ERROR 选项,允许在插入出错时继续导入。

此版本进一步扩展了分区数据管理以及跨远程 PostgreSQL 实例的数据处理能力。PostgreSQL 17 现已支持在分区表上使用身份列与排除约束。用于在远程 PostgreSQL 实例上执行查询的 PostgreSQL 外部数据包装器postgres_fdw)现在还可以将 EXISTSIN 子查询下推到远程服务器,以获得更高的执行效率。

PostgreSQL 17 还引入了一个内建、平台无关且保证不可变的排序规则提供程序。它的排序语义与 C 排序规则类似,但采用 UTF-8 编码而不是 SQL_ASCII。使用这一新的排序规则提供程序,可以确保基于文本的查询无论在何处运行 PostgreSQL,都能返回一致的排序结果。

面向高可用与主版本升级的逻辑复制增强

逻辑复制广泛用于实时流式传输数据。但在此版本之前,想执行主版本升级的用户必须删除逻辑复制槽,这意味着升级后需要重新同步订阅端数据。从升级到 PostgreSQL 17 起,用户无需再删除逻辑复制槽,从而显著简化了使用逻辑复制时的升级过程。

PostgreSQL 17 现在还为逻辑复制提供了故障切换控制,使其在高可用环境中更加稳健。此外,PostgreSQL 17 引入了 pg_createsubscriber 命令行工具,可将物理副本转换为新的逻辑副本。

更多安全与运维管理选项

PostgreSQL 17 进一步扩展了用户对数据库系统全生命周期的管理能力。PostgreSQL 现已提供新的 TLS 选项 sslnegotiation,允许用户在使用 ALPN 时直接执行 TLS 握手(在 ALPN 目录中注册为 postgresql)。PostgreSQL 17 还增加了 pg_maintain 预定义角色,用于授予用户执行维护操作的权限。

PostgreSQL 自带的备份工具 pg_basebackup 现已支持增量备份,并新增 pg_combinebackup 工具,用于重建完整备份。此外,pg_dump 新增了 --filter 选项,可让用户在生成转储文件时精确选择要包含的对象。

PostgreSQL 17 还增强了监控与分析能力。EXPLAIN 现在会显示本地 I/O 块读写所花费的时间,并增加了两个新选项:SERIALIZEMEMORY,分别有助于观察网络传输中的数据转换耗时以及内存使用情况。PostgreSQL 17 还会报告索引 vacuum 进度,并新增 pg_wait_events 系统视图;该视图与 pg_stat_activity 结合使用时,可更深入地解释活跃会话为何处于等待状态。

其他功能

PostgreSQL 17 还加入了许多其他新功能与改进,可能同样适用于您的使用场景。完整的新功能与变更列表,请参阅 发布说明

关于 PostgreSQL

PostgreSQL 是世界上最先进的开源数据库,拥有一个由数千名用户、贡献者、公司和组织组成的全球社区。PostgreSQL 起源于加利福尼亚大学伯克利分校,建立在超过 35 年的工程积累之上,并始终保持着无与伦比的发展速度。PostgreSQL 成熟的特性集不仅能够匹配顶级专有数据库系统,而且在高级数据库功能、可扩展性、安全性与稳定性方面更胜一筹。

关于 PostgreSQL

PostgreSQL 是世界上最先进的开源数据库,拥有一个由数千名用户、贡献者、公司和组织组成的全球社区。PostgreSQL 起源于加利福尼亚大学伯克利分校,建立在超过 35 年的工程积累之上,并始终保持着无与伦比的发展速度。PostgreSQL 成熟的特性集不仅能够匹配顶级专有数据库系统,而且在高级数据库功能、可扩展性、安全性与稳定性方面更胜一筹。

Learn more about PostgreSQL and participate in our community at PostgreSQL.org.

更多功能信息

有关上述功能及其他改进的详细说明,请参阅以下资源:

下载方式

您可以通过以下方式获取 PostgreSQL 17:

其他工具与扩展可在 PostgreSQL Extension Network 获取。

文档

PostgreSQL 17 附带 HTML 文档与手册页,您还可以在线浏览 HTMLPDF 格式的文档。

许可证

PostgreSQL 使用 PostgreSQL 许可证,这是一种类似 BSD 的宽松许可证。该许可证已获 OSI 认证,因其灵活且适合商业使用而广受赞誉,因为它不限制 PostgreSQL 在商业和专有应用中的使用。再加上多家公司支持以及代码公共所有权,这使 PostgreSQL 对希望在自身产品中嵌入数据库的厂商极具吸引力,无需担心费用、供应商锁定或许可条款变化。

联系方式

网站

邮箱

Postgres、PostgreSQL 和大象标志(Slonik)均为 PostgreSQL 社区协会 的注册商标。如果您希望使用这些标志,必须遵守商标政策

PostgreSQL Logo

企业支持和捐赠

PostgreSQL 得到了众多公司的支持,这些公司赞助开发人员、提供托管资源,并给予项目财务支持。请查看我们的赞助商页面,了解项目的重要支持者。

此外,还有大量提供 PostgreSQL 支持服务的公司,从个人顾问到跨国企业均有覆盖。

如果您希望向 PostgreSQL 全球开发组或其中一个获认可的社区非营利组织捐赠,请访问我们的捐赠页面。