PostgreSQL 15 建立在最近版本的性能改进的基础上,在管理本地和分布式部署中的工作负载方面取得了显着收益,包括改进的排序。此版本通过添加流行的 MERGE命令改善了开发人员的体验,并添加了更多用于观察数据库状态的功能。PostgreSQL 核心团队成员 Jonathan Katz 表示:“PostgreSQL 开发人员社区继续构建功能,以简化运行高性能数据工作负载,同时改善开发人员体验。” “PostgreSQL 15 强调了如何通过开放式软件开发,为我们的用户提供一个非常适合应用程序开发并对其关键数据安全的数据库。”
PostgreSQL是一个以可靠性和稳健性着称的创新数据管理系统,受益于全球开发者社区超过 25 年的开源开发, 并已成为各种规模组织的首选开源关系数据库。
改进的排序性能和压缩
在这个最新版本中,PostgreSQL 改进了其内存中和磁盘上的 排序算法,基准显示根据排序的数据类型,加速了 25% - 400%。在 PostgreSQL 15 中,使用row_number()、rank()、dense_rank()和count()as 窗口函数 也具有性能优势。使用 using 的查询 SELECT DISTINCT 现在可以 并行执行。
基于以前 PostgreSQL 版本 的工作,允许异步远程查询, PostgreSQL 外部数据包装器, postgres_fdw现在支持 异步提交。
PostgreSQL 15 中的性能改进扩展到其归档和备份设施。PostgreSQL 15 添加了对 LZ4 和 Zstandard (zstd) 压缩到预写日志 (WAL) 文件的支持,这对于某些工作负载可以同时具有空间和性能优势。在某些操作系统上,PostgreSQL 15 增加了对 WAL 中引用的预取页面的支持, 以帮助加快恢复时间。PostgreSQL 的内置备份命令 pg_basebackup现在支持备份文件的服务器端压缩,可选择 gzip、LZ4 和 zstd。PostgreSQL 15 包括使用 自定义模块进行归档的能力,这消除了使用 shell 命令的开销。
富有表现力的开发人员功能
PostgreSQL 15 包含 SQL 标准 MERGE命令。 MERGE允许您编写条件 SQL 语句,这些语句可以在单个语句中包含INSERT、 UPDATE和操作。DELETE
此最新版本添加 了使用正则表达式 检查字符串的新函数:regexp_count()、regexp_instr()、regexp_like()和 regexp_substr(). PostgreSQL 15 还将该range_agg功能扩展为聚合 multirange数据类型,这是在前一个版本中引入的 。
PostgreSQL 15 允许用户 使用调用者而不是视图创建者的权限来创建查询数据的视图。这个名为 的选项security_invoker添加了额外的保护层,以确保视图调用者具有使用基础数据的正确权限。
更多逻辑复制选项
PostgreSQL 15 为管理逻辑复制提供了更大的灵活性 。此版本 为 发布者引入了行过滤 和 列列表,允许用户选择复制表中的数据子集。PostgreSQL 15 添加了简化 冲突管理的功能,包括跳过重播冲突事务以及在检测到错误时自动禁用订阅的能力。此版本还支持将两阶段提交 (2PC) 与逻辑复制结合使用。
日志记录和配置增强
PostgreSQL 15 引入了一种新的日志记录格式: jsonlog. 这种新格式使用定义的 JSON 结构输出日志数据,允许在结构化日志系统中处理 PostgreSQL 日志。
此版本使数据库管理员在用户如何管理 PostgreSQL 配置方面具有更大的灵活性,增加了授予用户更改服务器级配置参数的权限的能力。\dconfig此外,用户现在可以使用命令 psql行工具中的命令搜索有关配置的信息。
其他显着变化
PostgreSQL 服务器级别的统计信息 现在收集在共享内存中,消除了统计信息收集进程和定期将此数据写入磁盘。
PostgreSQL 15 使 ICU 排序规则成为集群或单个数据库的默认排序规则成为可能。
此版本还添加了一个新的内置扩展 , pg_walinspect让用户可以直接从 SQL 界面检查预写日志文件的内容。
PostgreSQL 15 还 从(或默认)模式中撤销CREATE 除数据库所有者之外的所有用户的权限。public
PostgreSQL 15 从 PL/Python 中删除了长期弃用的“独占备份”模式和对 Python 2 的支持。