2024年9月26日,PostgreSQL 17 数据库正式发布,这在这项广泛部署的开源技术数十年历史中标志着一个新的里程碑。
PostgreSQL 数据库(有时也简称为 Postgres)是现存最老牌的数据库技术之一。开发者们已经在这个数据库上工作了超过 35 年,其根源可以追溯到加州大学伯克利分校,并将其作为开源技术不断发展。数据库的开发由 PostgreSQL 全球开发团队负责,这是一个由志愿者和贡献公司组成的协会,他们通过代码贡献来支持这个项目。PostgreSQL 17 版本有超过 450 名来自多家公司的个人贡献者参与。包括 AWS、Microsoft Azure 和 Google Cloud 在内的所有主要云服务提供商都管理着 PostgreSQL 产品,而 EDB、Percona、Instaclustr 和 Aiven 等许多供应商也提供商业支持和技术。

PostgreSQL 17 新版本标志着自 2023 年开发者发布 PostgreSQL 16 以来的第一个重要里程碑。像所有 PostgreSQL 版本一样,它专注于提高性能。对于企业用户来说,更新的关键重点是一系列创新,将使数据库更易于使用和管理。PostgreSQL 一直是一个关系数据库,但新版本现在集成了更多 JSON 文档数据库功能,这是许多企业通常与 MongoDB Atlas 数据库相关联的功能。
PostgreSQL 全球开发团队的核心成员 Jonathan Katz 告诉 VentureBeat,他认为对数据库管理员的改进是关于性能、规模和开发便利性。Jonathan Katz 解释说:“我们非常注重改进基础操作和面向用户的操作。这些建立在规模的基础上,特别是如果你注意到用于分发数据的逻辑复制功能,PostgreSQL 17 使逻辑复制对生产环境的使用更加可靠。”
改进了 PostgreSQL 17 中的内存管理和查询执行
长期以来,所有数据库用户面临的一个关键挑战是内存管理,因为数据库管理员似乎总是想要更多。在许多数据库(包括 PostgreSQL)中,有一个 “vacuuming” 操作,在删除数据库中的一行后,该操作将吸收或 “vacuum” 空间。Katz 解释说,PostgreSQL 17 有一个用于 vacuum 的新内存管理系统。
“在许多情况下,这将显著减少完成 vacuum 所需的内存量,并可以提高整体 vacuuming 性能,”Katz 说。“换句话说,PostgreSQL 17 使 vacuum 更高效、更高效、更高性能。”
任何数据库的核心操作都是执行查询。数据库管理员会注意到 PostgreSQL 17 可能带来的显著查询执行改进。对于将 ‘IN’ 子句与 B 树索引(PostgreSQL 中的标准索引类型)一起使用的查询,这种提升将是显而易见的。‘IN’ 子句用于检查值是否与列表中的任何值匹配。此外,还有对查询规划的改进,将进一步优化性能。
有时,为了获得 SQL 查询优化的好处,数据库管理员可能必须重写查询,这可能是一个繁琐的过程。但这里的情况并非如此。
“数据库管理员唯一需要做的就是升级到 PostgreSQL 17,然后运行 ANALYZE,他们需要在升级后完成此操作,”Katz 解释说。“PostgreSQL 17 将使用使用 B 树索引的 ‘IN’ 子句自动优化执行查询。”
PostgreSQL 17 将如何帮助企业及其数据库运营
特别是对于企业数据库管理员,PostgreSQL 17 中的一系列功能将使工作更轻松。PostgreSQL 贡献者 EDB 强调的主要功能包括增量备份、逻辑复制和 SQL:JSON 功能。
许多第三方开发人员长期以来一直在创建用于 PostgreSQL 的工具,包括用于增量备份的工具。PostgreSQL 17 所做的是将方法标准化,并将该功能直接集成到核心开源数据库中。EDB 首席产品工程官 Jozef de Vries 告诉 VentureBeat,虽然拥有大量第三方工具很有用,但它也使组织的运营复杂化。
de Vries 说:“这种增量备份工作的主题是将更多的数据库生命周期管理功能引入核心服务器本身,使我们的客户能够更轻松地进行采用、部署和第二天的活动,并且更加一致。
PostgreSQL 17 中还有一系列逻辑复制增强功能。逻辑复制是 PostgreSQL 中的一项功能,允许在不同的 PostgreSQL 数据库之间复制数据。
“PostgreSQL 多年来在逻辑复制方面一直存在的一个大问题是,如果故障转移到备用数据库,则必须重新同步复制,”EDB 数据库服务器和工具高级副总裁 Tom Kincaid 告诉 VentureBeat。
Kincaid 解释说,如果逻辑复制场景中的主表失败,并且备用节点被提升为新的主节点,则需要重新同步数据库表。这个过程,尤其是对于大型表,可能需要很长时间。PostgreSQL 17 消除了重新同步过程的需要。
“逻辑副本将进行故障转移,我认为这将为 DBA(数据库管理员)省去很多麻烦,”Kincaid 说。
还有一个更新,使 DBA 能够更轻松地获取物理数据库副本并将其转换为逻辑副本。Kincaid 预计,称为 PG create subscriber 的功能将实现更快的数据库整体复制。
为什么 PostgreSQL 中的 JSON 简化了企业数据库部署
在过去几年中,PostgreSQL 一直在逐步增加对 SQL: JSON 标准的支持。JSON(JavaScript 对象表示法)是一种非常受开发人员欢迎的格式,是 MongoDB 等文档数据库的基础。
Kincaid 说,PostgreSQL 17 现在支持 JSON 表,这是向前迈出的一大步。这意味着数据库管理员可以获取 JSON 文档并将其转换为在 PostgreSQL 中运行的表。
“JSON 仍然非常受开发人员的欢迎,PostgreSQL 赢得了 StackOverflow 最受开发人员喜爱的数据库,”Kincaid 说。“所以我们认为这会让他们更加喜欢它。”
原文作者:Sean Michael Kerner
2024年9月26日




