PostgreSQL 全球开发组今天宣布发布 PostgreSQL 13,这是世界上最先进的开源数据库的最新版本。
PostgreSQL 13 对其索引和查找系统进行了重大改进,使大型数据库受益,包括索引的空间节省和性能提升、使用聚合或分区的查询的更快响应时间、使用增强统计信息时更好的查询计划等等。
除了高度请求的功能(如并行清理和增量排序)之外,PostgreSQL 13 还为大大小小的工作负载提供了更好的数据管理体验,优化了日常管理、为应用程序开发人员提供了更多便利以及增强了安全性。
PostgreSQL 核心团队成员 Peter Eisentraut 表示:“PostgreSQL 13 展示了我们全球社区在进一步发展世界上最先进的开源关系数据库能力方面的合作和奉献精神。每个版本带来的创新以及其可靠性和稳定性的声誉是越来越多的人选择使用 PostgreSQL 来开发其应用程序的原因。”
PostgreSQL 是一款以其可靠性和健壮性而闻名的数据管理系统,受益于 全球开发人员社区 25 年以上的开源开发,并且已成为各种规模的组织首选的开源关系数据库。
基于先前 PostgreSQL 版本的工作,PostgreSQL 13 可以有效地处理 B 树索引中的重复数据,这是标准数据库索引。这降低了 B 树索引所需的整体空间使用量,同时提高了整体查询性能。
PostgreSQL 13 引入了增量排序,其中查询中先前步骤的排序数据可以加速后续步骤的排序。此外,PostgreSQL 现在可以使用扩展统计系统(通过CREATE STATISTICS
访问)来创建改进的查询计划,用于具有 OR
子句和 IN
/ANY
列表查找的查询。
在 PostgreSQL 13 中,更多类型的聚合和分组集查询可以利用 PostgreSQL 高效的哈希聚合功能,因为具有大型聚合的查询不必完全适合内存。 具有分区表的查询的性能得到了提升,因为现在有更多的情况可以修剪分区以及可以直接连接分区。
清理是 PostgreSQL 管理的重要组成部分,使数据库能够在更新和删除行后回收存储空间。此过程也可能会带来管理挑战,但之前的 PostgreSQL 版本已完成一些工作来减轻清理的开销。
PostgreSQL 13 继续通过引入索引的并行清理来改进清理系统。除了清理性能优势外,还可以根据特定的工作负载调整此新功能的使用,因为管理员可以选择要运行的并行工作进程的数量。除了这些性能优势外,数据插入现在可以触发自动清理过程。
复制槽,用于防止在副本接收到预写日志 (WAL) 之前将其删除,可以在 PostgreSQL 13 中进行调整,以指定要保留的最大 WAL 文件数,并有助于避免磁盘空间不足的错误。
PostgreSQL 13 还增加了管理员可以监视数据库活动的方式,包括从 EXPLAIN
引用 WAL 使用情况统计信息、流式基本备份的进度以及 ANALYZE
命令的进度。此外,可以使用新的pg_verifybackup
命令检查pg_basebackup
命令输出的完整性。
PostgreSQL 13 使处理来自不同数据源的 PostgreSQL 数据类型更加容易。此版本向其 SQL/JSON 路径支持添加了 datetime()
函数,该函数将有效的时间格式(例如 ISO 8601 字符串)转换为 PostgreSQL 原生类型。此外,现在无需安装任何扩展程序即可使用 UUID v4 生成函数 gen_random_uuid()
。
PostgreSQL 的分区系统更加灵活,因为分区表完全支持逻辑复制和 BEFORE 行级触发器。
PostgreSQL 13 中的 FETCH FIRST
语法现在已扩展为包含 WITH TIES
子句。指定后,WITH TIES
将根据 ORDER BY
子句包含与结果集中最后一行“绑定”的任何行。
PostgreSQL 的扩展系统是其健壮性的关键组成部分,因为它允许开发人员扩展其功能。在之前的版本中,只能由数据库超级用户安装新扩展。为了更容易利用 PostgreSQL 的可扩展性,PostgreSQL 13 添加了“受信任的扩展”的概念,允许数据库用户安装超级用户标记为“受信任”的扩展。某些内置扩展默认标记为受信任,包括 pgcrypto
、tablefunc
、hstore
等。
对于需要安全身份验证方法的应用程序,PostgreSQL 13 允许客户端在使用 SCRAM 身份验证时需要通道绑定,并且 PostgreSQL 外部数据包装器 ( postgres_fdw
) 现在可以使用基于证书的身份验证。
PostgreSQL 是世界上最先进的开源数据库,拥有由成千上万的用户、贡献者、公司和组织组成的全球社区。PostgreSQL 基于加州大学伯克利分校的 30 多年工程技术,以无与伦比的开发速度不断发展。PostgreSQL 成熟的功能集不仅与顶级专有数据库系统相匹配,而且在高级数据库功能、可扩展性、安全性和稳定性方面都超越了它们。