PostgreSQL 15 正式发布!

发布于 2022-10-13,PostgreSQL Global Development Group
PostgreSQL

2022 年 10 月 13 日 - PostgreSQL 全球开发组今天宣布发布 PostgreSQL 15 (https://www.postgresql.org/docs/15/release-15.html),这是世界上最先进的开源数据库 (https://www.postgresql.org/) 的最新版本。

PostgreSQL 15 在近几个版本性能改进的基础上更进一步,在本地和分布式部署的工作负载管理方面都取得了显著的提升,包括改进的排序性能。此版本通过添加广受欢迎的 MERGE (https://www.postgresql.org/docs/15/sql-merge.html) 命令改善了开发者体验,并增加了更多数据库状态观测能力。

PostgreSQL 核心团队成员 Jonathan Katz 表示:"PostgreSQL 开发者社区持续构建可简化高性能数据工作负载运行的功能,同时改善开发者体验。PostgreSQL 15 展示了我们如何通过开放式软件开发,为用户提供一个既适合应用开发又能确保关键数据安全的数据库。"

PostgreSQL (https://www.postgresql.org) 是一个以可靠性和健壮性著称的创新数据管理系统,受益于全球开发者社区 (https://www.postgresql.org/community/) 超过 25 年的开源开发,已成为各种规模组织首选的开源关系型数据库。

排序性能和压缩改进

在此最新版本中,PostgreSQL 改进了其内存和磁盘排序 (https://www.postgresql.org/docs/15/queries-order.html) 算法,基准测试显示根据排序的数据类型不同,速度提升了 25% 到 400%。使用 row_number()rank()dense_rank()count() 作为窗口函数 (https://www.postgresql.org/docs/15/functions-window.html) 在 PostgreSQL 15 中也获得了性能提升。使用 SELECT DISTINCT (https://www.postgresql.org/docs/15/queries-select-lists.html#QUERIES-DISTINCT) 的查询现在可以并行执行 (https://www.postgresql.org/docs/15/parallel-query.html)。

基于上一版 PostgreSQL (https://www.postgresql.org/about/press/presskit14/) 中异步远程查询的工作,PostgreSQL 外部数据包装器 (https://www.postgresql.org/docs/15/postgres-fdw.html) postgres_fdw (https://www.postgresql.org/docs/15/postgres-fdw.html) 现在支持异步提交 (https://www.postgresql.org/docs/15/postgres-fdw.html#id-1.11.7.47.11.7)。

PostgreSQL 15 的性能改进还扩展到其归档和备份功能。PostgreSQL 15 新增对预写日志 (WAL) 文件 (https://www.postgresql.org/docs/15/runtime-config-wal.html#GUC-WAL-COMPRESSION) 的 LZ4 和 Zstandard (zstd) 压缩支持,这对某些工作负载可以同时带来空间和性能方面的收益。在某些操作系统上,PostgreSQL 15 新增了对 WAL 中引用页面的预取 (https://www.postgresql.org/docs/15/runtime-config-wal.html#GUC-RECOVERY-PREFETCH) 支持,有助于加快恢复时间。PostgreSQL 内置的备份命令 pg_basebackup (https://www.postgresql.org/docs/15/app-pgbasebackup.html) 现在支持服务端备份文件压缩,可选择 gzip、LZ4 和 zstd。PostgreSQL 15 还包括使用自定义模块进行归档 (https://www.postgresql.org/docs/15/archive-modules.html) 的能力,消除了使用 shell 命令的开销。

丰富的开发者特性

PostgreSQL 15 包含了 SQL 标准的 MERGE (https://www.postgresql.org/docs/15/sql-merge.html) 命令。MERGE 允许您编写包含 INSERTUPDATEDELETE 操作的条件 SQL 语句,在单个语句中完成。

此最新版本新增了使用正则表达式 (https://www.postgresql.org/docs/15/functions-matching.html#FUNCTIONS-POSIX-REGEXP) 检查字符串的新函数:regexp_count()regexp_instr()regexp_like()regexp_substr()。PostgreSQL 15 还扩展了 range_agg 函数以聚合多范围数据类型 (https://www.postgresql.org/docs/15/rangetypes.html),该类型在上一版本 (https://www.postgresql.org/about/press/presskit14/) 中引入。

PostgreSQL 15 允许用户创建使用调用者权限而非视图创建者权限来查询数据的视图 (https://www.postgresql.org/docs/15/sql-createview.html)。这个名为 security_invoker 的选项增加了额外的安全保护层,确保视图调用者拥有处理底层数据的正确权限。

更多逻辑复制选项

PostgreSQL 15 为管理逻辑复制 (https://www.postgresql.org/docs/15/logical-replication.html) 提供了更大的灵活性。此版本为发布者 (https://www.postgresql.org/docs/15/logical-replication-publication.html) 引入了行过滤 (https://www.postgresql.org/docs/15/logical-replication-row-filter.html) 和列列表 (https://www.postgresql.org/docs/15/logical-replication-col-lists.html),允许用户选择从表中复制数据的子集。PostgreSQL 15 新增了简化冲突管理 (https://www.postgresql.org/docs/15/logical-replication-conflicts.html) 的功能,包括跳过冲突事务的回放以及在检测到错误时自动禁用订阅。此版本还新增了逻辑复制对两阶段提交 (2PC) 的支持。

日志和配置增强

PostgreSQL 15 引入了新的日志格式:jsonlog (https://www.postgresql.org/docs/15/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-JSONLOG)。这种新格式使用定义好的 JSON 结构输出日志数据,使 PostgreSQL 日志可以在结构化日志系统中处理。

此版本为数据库管理员提供了更大的用户管理 PostgreSQL 配置的灵活性,新增了授予用户修改服务器级配置参数权限的能力。此外,用户现在可以使用 psql (https://www.postgresql.org/docs/15/app-psql.html) 命令行工具中的 \dconfig 命令搜索配置信息。

其他值得关注的变更

PostgreSQL 服务器级统计信息 (https://www.postgresql.org/docs/15/monitoring-stats.html) 现在收集在共享内存中,消除了统计收集器进程以及定期将数据写入磁盘的操作。

PostgreSQL 15 支持将 ICU 排序规则 (https://www.postgresql.org/docs/15/collation.html) 设为集群或单个数据库的默认排序规则。

此版本还新增了一个内置扩展 pg_walinspect (https://www.postgresql.org/docs/15/pgwalinspect.html),允许用户直接通过 SQL 接口检查预写日志文件的内容。

PostgreSQL 15 还撤销了除数据库所有者外的所有用户在 public(或默认)schema 上的 CREATE 权限 (https://www.postgresql.org/docs/15/ddl-schemas.html#DDL-SCHEMAS-PATTERNS)。

PostgreSQL 15 移除了早已弃用的"独占备份"模式以及 PL/Python 中对 Python 2 的支持。

关于 PostgreSQL

PostgreSQL (https://www.postgresql.org) 是世界上最先进的开源数据库,拥有由数千名用户、贡献者、公司和组织组成的全球社区。PostgreSQL 源于加州大学伯克利分校,历经 35 年以上的工程建设,以无与伦比的开发速度持续演进。PostgreSQL 成熟的功能集不仅可以媲美顶级商业数据库系统,而且在高级数据库功能、可扩展性、安全性和稳定性方面超越了它们。

链接

  • 下载 (https://www.postgresql.org/download/)

  • 发布说明 (https://www.postgresql.org/docs/15/release-15.html)

  • 国际新闻资料包 (https://www.postgresql.org/about/press/)

  • 安全页面 (https://www.postgresql.org/support/security/)

  • 版本策略 (https://www.postgresql.org/support/versioning/)

  • 在 Twitter 上关注 @postgresql (https://twitter.com/postgresql)