2025-10-28
派胜科技
派胜OA - ExpressOA 现已支持 PostgreSQL 18 - 世界上最成功的开源数据库
派胜OA - ExpressOA 现已支持 PostgreSQL 18 - 世界上最成功的开源数据库。

PostgreSQL 全球开发组今日宣布发布 PostgreSQL 18,这是全球最先进的开源数据库的最新版本。
PostgreSQL 18 通过全新的 I/O 子系统提升了各种规模工作负载的性能,该子系统在存储读取数据时性能提升高达 3 倍,并增加了可使用索引的查询数量。此次发布使主版本升级的中断更小,缩短了升级时间,并减少了升级完成后达到预期性能所需的时间。开发人员还可以受益于 PostgreSQL 18 的诸多特性,例如在查询时计算值的虚拟生成列,以及对数据库友好的 uuidv7() 函数,该函数可为 UUID 提供更佳的索引和读取性能。PostgreSQL 18 支持 OAuth 2.0 身份验证,从而更轻松地与单点登录 (SSO) 系统集成。
“全球开源社区的努力塑造了 PostgreSQL 的每一个版本,并帮助我们提供满足用户数据需求的各种功能,”PostgreSQL 核心团队成员 Jonathan Katz 表示。“PostgreSQL 18 延续了该项目悠久而丰富的历史,致力于提供可靠、强大的数据管理体验,同时不断扩展其支持的工作负载。”
PostgreSQL 是一款创新的数据管理系统,以其可靠性、稳健性和可扩展性而闻名。它受益于全球开发者社区近 30 年的开源开发,已成为各种规模组织首选的开源关系数据库。
引入异步 I/O
PostgreSQL 之前依赖操作系统预读机制来加速数据检索。然而,由于操作系统缺乏对数据库特定访问模式的洞察,它们无法始终预测所需的数据,导致许多工作负载的性能欠佳。
PostgreSQL 18 引入了一个新的异步 I/O (AIO) 子系统,旨在解决这一限制。 AIO 允许 PostgreSQL 并发发出多个 I/O 请求,而不是按顺序等待每个请求完成。这扩展了现有的预读功能,并提高了整体吞吐量。PostgreSQL 18 支持的 AIO 操作包括顺序扫描、位图堆扫描和 vacuum 操作。基准测试表明,在某些情况下,性能提升可达 3 倍。
新的 io_method 设置允许您在 AIO 方法(包括 worker 和 io_uring)之间切换,或者您可以选择使用 sync 设置来保持当前的 PostgreSQL 行为。现在,AIO 有更多参数可供调优,您可以在文档中了解更多信息。
更快的升级速度,更好的升级后性能
PostgreSQL 的一个关键特性是生成和存储统计信息,以帮助 PostgreSQL 选择最高效的查询计划。在 PostgreSQL 18 之前,这些统计信息不会在主要版本升级时保留,这可能会导致繁忙系统的查询性能显著下降,直到 ANALYZE 操作完成。 PostgreSQL 18 引入了在主版本升级期间保留查询规划器统计信息的功能,这有助于升级后的集群在升级后更快地达到预期性能。
此外,用于执行主版本升级的实用程序 pg_upgrade 在 PostgreSQL 18 中也进行了多项增强,例如,当数据库包含大量对象(如表和序列)时,升级速度更快。此版本还允许 pg_upgrade 根据 `--jobs` 标志的设置并行处理检查,并新增了 `--swap` 标志,该标志用于交换升级目录,而不是复制、克隆或链接文件。
查询和整体性能增强
PostgreSQL 18 通过一些可自动加快工作负载速度的功能,进一步提升了查询性能。此版本引入了对多列 B 树索引的“跳过扫描”查找,从而缩短了省略一个或多个前缀索引列上的 `=` 条件的查询的执行时间。它还可以优化在 WHERE 子句中使用 OR 条件的查询,使其使用索引,从而显著加快执行速度。此外,PostgreSQL 在表连接的规划和执行方面也进行了诸多改进,例如提升哈希连接的性能,以及允许合并连接使用增量排序。PostgreSQL 18 还支持 GIN 索引的并行构建,此前 B 树索引和 BRIN 索引也支持此功能。
此版本还增强了 PostgreSQL 对硬件加速的支持,包括支持 ARM NEON 和 SVE CPU 内部函数的 popcount 函数,该函数被 bit_count 和其他内部函数使用。
提升开发者体验
PostgreSQL 18 引入了虚拟生成列,这些列在查询时计算值,而不是存储它们。这现在是生成列的默认选项。此外,存储的生成列现在可以进行逻辑复制。
此版本新增了在 INSERT、UPDATE、DELETE 和 MERGE 命令的 RETURNING 子句中访问先前值 (OLD) 和当前值 (NEW) 的功能。PostgreSQL 18 还通过 uuidv7() 函数添加了 UUIDv7 生成功能,允许您生成按时间戳排序的随机 UUID,以支持更好的缓存策略。PostgreSQL 18 将 uuidv4() 作为 gen_random_uuid() 的别名。
PostgreSQL 18 为 PRIMARY KEY 和 UNIQUE 约束添加了时间约束(范围约束),使用 WITHOUT OVERLAPS 子句,并为 FOREIGN KEY 约束添加了时间约束,使用 PERIOD 子句。
最后,PostgreSQL 18 简化了使用本地表定义通过 CREATE FOREIGN TABLE ... LIKE 命令创建外部表模式定义的流程。
改进的文本处理
PostgreSQL 18 通过多项新改进,使文本处理更加轻松快捷。此版本新增了 PG_UNICODE_FAST 排序规则,它为大小写转换提供完整的 Unicode 语义,同时有助于加速许多比较操作。这包括字符串大小写比较函数以及用于不区分大小写比较的新增 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_fdw 和 dblink 进行 SCRAM 直通身份验证,以对远程 PostgreSQL 实例进行身份验证。此外,pgcrypto 现在支持使用 SHA-2 加密进行密码哈希。
复制
PostgreSQL 18 支持在日志和 pg_stat_subscription_stats 视图中报告逻辑复制写入冲突。此外,CREATE SUBSCRIPTION 现在默认使用并行流来应用事务,这有助于提高性能。 pg_createsubscriber 工具现在新增了 `--all` 标志,因此您可以使用单个命令为实例中的所有数据库创建逻辑副本。PostgreSQL 18 还允许您自动删除空闲的复制槽,以防止在发布服务器上存储过多的预写式日志文件 (WAL)。
维护和可观测性
PostgreSQL 18 改进了其清理策略,在常规清理期间主动冻结更多页面,从而降低开销,并有助于应对需要频繁清理的情况。
PostgreSQL 18 为 EXPLAIN 添加了更多详细信息,提供有关查询计划执行的信息。从本版本开始,EXPLAIN 还会自动显示执行 EXPLAIN ANALYZE 时访问的缓冲区(数据存储的基本单元)数量。此外,EXPLAIN ANALYZE 现在会显示索引扫描期间发生的索引查找次数,而 EXPLAIN ANALYZE VERBOSE 则包含 CPU、WAL 和平均读取统计信息。 PostgreSQL 18 在 pg_stat_all_tables 中包含更多关于 vacuum 及相关操作所花费时间的信息,以及每个连接的 I/O 和 WAL 利用率统计信息。
其他值得注意的变更
使用 PostgreSQL 18 initdb 初始化的数据库现在默认启用页面校验和。这可能会影响从未启用校验和的集群升级,因此在使用 pg_upgrade 时,您需要使用 `--no-data-checksums` 选项创建一个新的 PostgreSQL 18 集群。
PostgreSQL 18 还引入了新版本的 PostgreSQL wire 协议 (3.2),这是自 PostgreSQL 7.4 (2003) 以来的第一个新协议版本。libpq 默认仍然使用 3.0 版本,而客户端(例如驱动程序、连接池、代理)则增加了对新协议版本的支持。
其他功能
PostgreSQL 18 还添加了许多其他新功能和改进,这些功能和改进可能对您的用例也很有帮助。请参阅发行说明以获取完整的新增和变更功能列表。
关于 PostgreSQL
PostgreSQL 是世界上最先进的开源数据库,拥有遍布全球的数千名用户、贡献者、公司和组织组成的社区。自 40 多年前在加州大学伯克利分校诞生以来,PostgreSQL 一直保持着无与伦比的发展速度。PostgreSQL 成熟的功能集不仅可以媲美顶级的商业数据库系统,而且在高级数据库功能、可扩展性、安全性和稳定性方面都超越了它们。
访问 EDB 官网:
下载 PostgreSQL 18