PostgreSQL 14 发布!

发布于 2021-09-30,作者:PostgreSQL 全球开发组
PostgreSQL 项目

PostgreSQL 全球开发组今天宣布发布 PostgreSQL 14,这是世界上最先进的开源数据库的最新版本。

PostgreSQL 14 带来了各种功能,可以帮助开发人员和管理员部署其数据驱动的应用程序。PostgreSQL 继续在复杂数据类型上进行创新,包括更方便地访问 JSON 和支持非连续的数据范围。此最新版本进一步推动了 PostgreSQL 在提高高性能和分布式数据工作负载方面的趋势,包括连接并发、高写入工作负载、查询并行和逻辑复制方面的进步。

PostgreSQL 核心团队成员 Magnus Hagander 表示:“PostgreSQL 的最新版本提升了用户管理大规模数据工作负载的能力,增强了可观测性,并包含了可帮助应用程序开发人员的新功能。PostgreSQL 14 证明了全球 PostgreSQL 社区在采纳反馈意见并继续提供由各种规模的组织部署的创新数据库软件方面的奉献精神。”

PostgreSQL 是一种以其可靠性和稳健性而闻名的数据管理系统,受益于来自全球开发人员社区的 25 年以上的开源开发,并且已成为各种规模组织的首选开源关系数据库。

JSON 便利性和多范围

自 PostgreSQL 9.2 版本以来,PostgreSQL 就支持操作 JSON 数据,但值的检索使用了独特的语法。PostgreSQL 14 现在允许您使用下标访问 JSON 数据,例如,类似 SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; 的查询现在可以工作了。这使 PostgreSQL 与常用的用于从 JSON 数据检索信息的语法保持一致。添加到 PostgreSQL 14 中的下标框架可以普遍扩展到其他嵌套数据结构,并且在此版本中也应用于 hstore 数据类型。

范围类型(也是在 PostgreSQL 9.2 中首次发布的)现在通过引入“多范围”数据类型支持非连续范围。多范围是一个有序的非重叠范围列表,它允许开发人员为处理复杂的范围序列编写更简单的查询。PostgreSQL 原生的范围类型(日期、时间、数字)支持多范围,并且其他数据类型可以扩展以使用多范围支持。

重负载的性能改进

PostgreSQL 14 在使用许多连接的工作负载上提供了显着的吞吐量提升,某些基准测试显示速度提高了 2 倍。此版本延续了最近对 B 树索引管理的改进,通过减少频繁更新的索引表上的索引膨胀。

PostgreSQL 14 引入了管道查询到数据库的能力,这可以显着提高高延迟连接或具有许多小写入(INSERT/UPDATE/DELETE)操作的工作负载的性能。由于这是一个客户端功能,您可以将管道模式与任何具有版本 14 客户端或使用 libpq 版本 14 构建的客户端驱动程序的现代 PostgreSQL 数据库一起使用。

分布式工作负载的增强功能

分布式 PostgreSQL 数据库可以从 PostgreSQL 14 中受益。当使用 逻辑复制时,PostgreSQL 现在可以将正在进行的事务流式传输给订阅者,这对于在订阅者上应用大型事务具有显着的性能优势。PostgreSQL 14 还为支持逻辑复制的逻辑解码系统添加了其他几个性能增强功能。

外部数据包装器,用于跨 PostgreSQL 和其他数据库处理联合工作负载,现在可以利用 PostgreSQL 14 中的查询并行性。此版本在 postgres_fdw 中实现了此功能,postgres_fdw 是与其他 PostgreSQL 数据库交互的外部数据包装器。

除了支持查询并行性之外,postgres_fdw 现在还可以使用 IMPORT FOREIGN SCHEMA 指令批量插入外部表上的数据并导入表分区。

管理和可观测性

PostgreSQL 14 将其性能提升扩展到 清理系统,包括优化以减少 B 树的开销。此版本还添加了旨在防止事务 ID 回绕的清理“紧急模式”。由于自身的性能改进,用于收集数据库统计信息的 ANALYZE 现在在 PostgreSQL 14 中运行速度显着加快。

PostgreSQL 的 TOAST 系统的压缩(用于存储更大的数据,如文本或几何图形块)现在可以配置。PostgreSQL 14 为 TOAST 列添加了 LZ4 压缩,同时保留了对 pglz 压缩的支持。

PostgreSQL 14 添加了几个新功能来帮助进行监控和可观测性,包括能够跟踪 COPY 命令的进度预写式日志 (WAL) 活动复制槽的统计信息。启用 compute_query_id 允许您通过多个 PostgreSQL 功能(包括 pg_stat_activityEXPLAIN VERBOSE 等)唯一地跟踪查询。

SQL 性能、一致性和便利性

查询规划和执行受益于 PostgreSQL 14 中的增强功能。此版本包括对 PostgreSQL 的查询并行性支持的几项改进,包括并行顺序扫描的更好性能、PL/pgSQL 在使用 RETURN QUERY 命令时执行并行查询的能力以及启用 REFRESH MATERIALIZED VIEW 执行并行查询。此外,使用嵌套循环连接的查询可以通过 PostgreSQL 14 中添加的额外缓存来提高性能。

扩展统计信息现在可以在 PostgreSQL 14 中用于表达式。此外,窗口函数现在可以受益于 PostgreSQL 13 中引入的增量排序功能。

存储过程(允许在代码块中进行事务控制)现在可以使用 OUT 参数返回数据。

PostgreSQL 14 引入了使用 date_bin 函数将时间戳“分箱”或与特定间隔对齐的能力。此版本还添加了符合 SQL 标准的 SEARCHCYCLE 子句,以帮助对递归公用表表达式进行排序和循环检测。

安全增强

PostgreSQL 14 可以使用 pg_read_all_datapg_write_all_data 预定义角色方便地为用户分配表、视图和架构上的只读和只写权限。

此外,此版本现在使符合标准的 SCRAM-SHA-256 密码管理和身份验证系统成为新 PostgreSQL 实例的默认设置。

关于 PostgreSQL

PostgreSQL 是世界上最先进的开源数据库,拥有数千名用户、贡献者、公司和组织的全球社区。PostgreSQL 基于加州大学伯克利分校的 30 多年工程设计,继续以无与伦比的发展速度前进。PostgreSQL 成熟的功能集不仅可以与顶级专有数据库系统相媲美,而且在高级数据库功能、可扩展性、安全性和稳定性方面超越了它们。

链接