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

PostgreSQL 18 Press Kit

Contents

Original Press Release

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

PostgreSQL 18 通过全新的 I/O 子系统提升了各类工作负载的性能;在从存储读取数据时,性能提升最高可达 3 倍,同时还扩大了能够利用索引的查询范围。此版本降低了主版本升级带来的扰动,加快了升级速度,并缩短了升级完成后恢复到预期性能所需的时间。开发者也能从 PostgreSQL 18 中直接受益,例如可在查询时计算数值的虚拟生成列,以及能够为 UUID 带来更佳索引与读取性能的 uuidv7() 函数。借助对 OAuth 2.0 身份验证的支持,PostgreSQL 18 也更易于与单点登录(SSO)系统集成。

PostgreSQL 核心团队成员 Jonathan Katz 表示:“全球开源社区的持续投入塑造了每一次 PostgreSQL 发布,并不断交付契合用户数据场景的功能。PostgreSQL 18 延续了该项目长期以来可靠、稳健的数据管理传统,同时继续扩展其可支持的工作负载范围。”

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

引入异步 I/O

过去,PostgreSQL 主要依赖操作系统的预读机制来加速数据获取。然而,操作系统无法洞察数据库特有的访问模式,因此并不总能准确预判所需数据,这在许多工作负载下都会造成性能损失。

PostgreSQL 18 引入了新的异步 I/O(AIO)子系统来解决这一限制。AIO 允许 PostgreSQL 并发发出多个 I/O 请求,而不是顺序等待每个请求完成,从而扩展了现有预读能力并提升整体吞吐量。PostgreSQL 18 当前支持的 AIO 操作包括顺序扫描、位图堆扫描和 vacuum。基准测试表明,在某些场景下性能提升最高可达 3 倍。

新的 io_method 配置项允许用户在 workerio_uring 等 AIO 方法之间切换,也可以选择 sync 来保持 PostgreSQL 现有行为。随着 AIO 引入,相关可调参数也更加丰富,详情请参考官方文档

升级更快,升级后性能恢复也更快

PostgreSQL 的一项关键能力是生成并保存统计信息,以帮助优化器选择更高效的查询计划。在 PostgreSQL 18 之前,这些统计信息无法在主版本升级过程中保留,导致高负载系统在ANALYZE完成前查询性能明显下降。PostgreSQL 18 新增了在主版本升级中保留规划器统计信息的能力,使升级后的集簇能够更快恢复到预期性能。

此外,执行主版本升级的工具 pg_upgrade 在 PostgreSQL 18 中也获得了多项增强。例如,当数据库包含大量表、序列等对象时,升级速度会更快。此版本还允许通过 --jobs 参数并行执行检查,并新增了 --swap 参数,通过交换升级目录来替代复制、克隆或链接文件的方式。

查询与整体性能增强

PostgreSQL 18 进一步提升了查询性能,并通过一系列可自动生效的优化让工作负载运行得更快。此版本在多列 B-tree 索引上引入了“跳跃扫描”能力,可提升查询在缺少一个或多个前缀索引列等值条件(=)时的执行效率。它还能够优化 WHERE 子句中包含 OR 条件的查询,使其更好地利用索引,从而显著缩短执行时间。PostgreSQL 18 还在表连接的规划与执行方面做出多项改进,包括提升哈希连接性能,以及允许合并连接使用增量排序等。此外,GIN 索引现在也支持并行构建,与 B-tree 和BRIN 索引一道具备这一能力。

该版本还继续增强 PostgreSQL 对硬件加速的支持,例如为 popcount 函数加入了对 ARM NEON 与 SVE CPU 内置指令的支持,而该函数会被 bit_count 等内部能力使用。

持续强化开发者体验

PostgreSQL 18 引入了虚拟生成列,它在查询时计算数值而不是直接存储,并已成为生成列的默认选项。此外,存储型生成列现在也可以参与逻辑复制。

此版本还新增了在 RETURNING 子句 中同时访问修改前(OLD)与当前(NEW)数值的能力,适用于 INSERTUPDATEDELETEMERGE 命令。PostgreSQL 18 还通过 uuidv7() 新增 UUIDv7 生成能力,可生成按时间戳排序的随机 UUID,以支持更好的缓存策略。与此同时,uuidv4() 也已作为 gen_random_uuid() 的别名提供。

PostgreSQL 18 还增加了时态约束支持。借助 WITHOUT OVERLAPS 子句,可在 PRIMARY KEYUNIQUE 约束中对范围建立不重叠约束;借助 PERIOD 子句,则可在 FOREIGN KEY 约束上定义时间约束关系。

最后,PostgreSQL 18 通过 CREATE FOREIGN TABLE ... LIKE 命令,让用户能够基于本地表定义,更方便地创建外部表的模式结构。

文本处理增强

PostgreSQL 18 通过多项增强,使文本处理更简单也更高效。此版本新增了 PG_UNICODE_FAST 排序规则,它在提供完整 Unicode 大小写转换语义的同时,可显著加速多种比较操作,包括 upperlower 字符串比较函数,以及新的大小写不敏感比较函数 casefold。此外,PostgreSQL 18 现已支持在使用非确定性排序规则的文本上执行 LIKE 比较,从而简化更复杂的模式匹配。此版本还调整了全文检索的实现方式,使其使用数据库集簇的默认排序提供程序,而不再始终依赖 libc;这意味着在执行pg_upgrade之后,您可能需要重新构建所有全文检索pg_trgm 索引。

认证与安全特性

PostgreSQL 18 引入了 oauth 认证,使用户能够通过 PostgreSQL 扩展所支持的 OAuth 2.0 机制完成身份验证。此外,PostgreSQL 18 还增加了对 FIPS 模式的校验支持,并新增了 ssl_tls13_ciphers 参数,用于配置服务端 TLS v1.3 密码套件。

此版本将 md5 密码认证标记为弃用,并将在未来版本中移除。如果您仍需使用 PostgreSQL 的密码认证,请改用 SCRAM 认证。PostgreSQL 18 还为 postgres_fdwdblink 增加了 SCRAM 透传认证支持,以便连接远程 PostgreSQL 实例。此外,pgcrypto 现已支持 基于 SHA-2 的密码哈希加密

复制

PostgreSQL 18 支持在日志以及 pg_stat_subscription_stats 视图中报告逻辑复制写入冲突。此外,CREATE SUBSCRIPTION 现在默认使用并行流式方式应用事务,有助于提升复制性能。pg_createsubscriber 工具新增了 --all 参数,可通过一条命令为实例中的所有数据库创建逻辑副本。PostgreSQL 18 还支持自动删除空闲复制槽,以帮助避免在发布端积压过多 WAL 文件。

维护与可观测性

PostgreSQL 18 改进了其 vacuum 策略,通过在常规 vacuum 过程中主动冻结更多页面来减少开销,并在需要激进清理的场景下提供更好的支持。

PostgreSQL 18 为 EXPLAIN 提供了更丰富的执行细节。自此版本起,执行 EXPLAIN ANALYZE 时会自动显示访问的缓冲区数量(数据存储的基本单位)。此外,EXPLAIN ANALYZE 现在会展示索引扫描期间的索引查找次数,而 EXPLAIN ANALYZE VERBOSE 则会包含 CPU、WAL 和平均读取统计信息。PostgreSQL 18 还在 pg_stat_all_tables 中增加了 vacuum 及相关操作耗时,以及按连接统计的 I/O 与 WAL 使用情况等信息。

其他重要变更

通过 PostgreSQL 18 的 initdb 初始化的数据库,现在默认启用页校验和(page checksums)。这会影响从未启用校验和的集簇升级;如果使用 pg_upgrade 进行升级,则需要使用 --no-data-checksums 选项创建新的 PostgreSQL 18 集簇。

PostgreSQL 18 还引入了新的 PostgreSQL 通信协议版本(3.2),这是自 PostgreSQL 7.4(2003 年)以来首次引入新协议版本。当前,libpq 仍默认使用 3.0 版协议,而驱动程序、连接池、代理等客户端工具将逐步增加对新协议版本的支持。

其他功能

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

关于 PostgreSQL

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

链接

关于 PostgreSQL

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

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

更多功能

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

下载方式

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

更多工具与扩展可在 PostgreSQL Extension Network 获取。

文档

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

许可证

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

联系方式

网站

邮箱

图像和标志

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

PostgreSQL Logo

企业支持和捐赠

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

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

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