速览!世界上最先进的开源数据库PostgreSQL于日前发布最新版本

科技   2024-09-30 10:04   河南  

点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!

2024年09月26日,PostgreSQL全球开发组宣布发布PostgreSQL 17,这是世界上最先进的开源数据库的最新版本。

关于 PostgreSQL 

PostgreSQL 是世界上最先进的开源数据库,拥有全球成千上万的用户、贡献者、公司和组织组成的社区。PostgreSQL 基于超过 35 年的工程经验,始于加利福尼亚大学伯克利分校,持续以无与伦比的开发速度发展。PostgreSQL 成熟的功能集不仅与顶级专有数据库系统相匹配,而且在高级数据库功能、可扩展性、安全性和稳定性方面超越了它们。

PostgreSQL 17最新版本

PostgreSQL 17在数十年的开源开发基础上进行了改进,提高了其性能和可扩展性,同时适应了新兴的数据访问和存储模式。这次发布的PostgreSQL增加了显著的整体性能提升,包括对真空内存管理的全面修改、对存储访问的优化以及对高并发负载的改进、批量加载和导出的加速,以及针对索引的查询执行改进。PostgreSQL 17具有适用于全新工作负载和关键系统的功能,例如通过sql/json json_table命令增加的开发者体验,以及对逻辑复制的增强,这些增强简化了高可用性工作负载和主要版本升级的管理。

PostgreSQL核心团队成员Jonathan Katz表示:“PostgreSQL 17凸显了全球开源社区推动PostgreSQL开发的增强功能,帮助用户在其数据库旅程的各个阶段。无论是为大规模运营数据库的改进还是构建愉快开发者体验的新功能,PostgreSQL 17都将增强您的数据管理体验。”

PostgreSQL是一个创新的数据管理系统,以其可靠性、健壮性和可扩展性而闻名,得益于全球开发者社区25年的开源开发,已成为各种规模组织的首选开源关系型数据库。

系统整体性能提升

PostgreSQL 的 vacuum 进程对于健康运行至关重要,需要占用服务器实例资源来操作。PostgreSQL 17 引入了一种新的内部内存结构用于 vacuum,其内存消耗减少了多达 20 倍。这不仅提高了 vacuum 的速度,还减少了共享资源的使用,从而为您的工作负载释放更多资源。

PostgreSQL 17 继续提升其 I/O 层的性能。高并发工作负载由于写前日志(WAL)处理的改进,可能会看到高达 2 倍的写吞吐量提升。此外,新的流式 I/O 接口加快了顺序扫描(从表中读取所有数据)的速度以及 ANALYZE 更新计划统计信息的速度。

PostgreSQL 17 还将性能提升扩展到查询执行。PostgreSQL 17 提高了使用 B-tree 索引的 IN 子句查询的性能,B-tree 是 PostgreSQL 中的默认索引方法。此外,BRIN 索引现在支持并行构建。PostgreSQL 17 包括多项针对查询规划的改进,包括对 NOT NULL 约束的优化,以及在处理公共表表达式(WITH 查询)方面的改进。此版本增加了更多的 SIMD(单指令多数据)支持以加速计算,包括使用 AVX-512 进行 bit_count 函数的加速。

进一步扩展强大的开发人员体验

PostgreSQL 是首个添加 JSON 支持的关系数据库(2012 年),PostgreSQL 17 进一步增强了其对 SQL/JSON 标准的实现。在 PostgreSQL 17 中,现在可以使用 JSON_TABLE,让开发人员将 JSON 数据转换为标准 PostgreSQL 表。PostgreSQL 17 现在支持 SQL/JSON 构造函数(JSON、JSON_SCALAR、JSON_SERIALIZE)和查询函数(JSON_EXISTS、JSON_QUERY、JSON_VALUE),为开发人员提供了与他们的 JSON 数据进行交互的其他方式。此版本增加了更多的 jsonpath 表达式,重点是将 JSON 数据转换为 PostgreSQL 的原生数据类型,包括数字、布尔值、字符串和日期/时间类型。

PostgreSQL 17 为条件更新使用的 MERGE 语句增加了更多功能,包括 RETURNING 子句和更新视图的能力。此外,PostgreSQL 17 具有批量加载和数据导出的新功能,包括在使用 COPY 命令导出大行时高达 2 倍的性能提升。当源和目标编码匹配时,COPY 性能也有所提高,并包括一个新的选项 ON_ERROR,即使插入错误发生也能继续导入。

此版本扩展了用于管理分区中的数据和跨远程 PostgreSQL 实例分布的数据的功能。PostgreSQL 17 支持在分区表上使用标识列和排他约束。用于在远程 PostgreSQL 实例上执行查询的 PostgreSQL 外部数据包装器(postgres_fdw),现在可以将 EXISTS 和 IN 子查询推送到远程服务器以进行更高效的处理。

PostgreSQL 17 还包括一个内置的平台无关的不可变排序规则提供程序,保证不可变性并提供类似于 C 排序规则的排序语义,但使用 UTF-8 编码而不是 SQL_ASCII。使用这种新的排序规则提供程序可以保证您的基于文本的查询无论在何处运行 PostgreSQL,都会返回相同的排序结果。

针对高可用性和主要版本升级的逻辑复制增强功能

逻辑复制用于跨许多用例实时传输数据。然而,在此版本之前,想要执行主要版本升级的用户必须放弃逻辑复制插槽,这需要在升级后将数据重新同步到订阅服务器。从PostgreSQL 17升级开始,用户不必删除逻辑复制插槽,从而简化了使用逻辑复制时的升级过程。

PostgreSQL 17现在包括对逻辑复制的故障转移控制,使其在高可用性环境中部署时更具弹性。此外,PostgreSQL 17引入了pg_createsubscriber用于将物理副本转换为新的逻辑副本的命令行工具。

多安全管理和操作选项

PostgreSQL 17 进一步扩展了用户管理数据库系统整体生命周期的方式。PostgreSQL 有一个名为 sslnegotiation 的新 TLS 选项,当使用 ALPN(在 ALPN 目录中注册为 postgresql)时,允许用户执行直接的 TLS 握手。PostgreSQL 17 还添加了预定义角色 pg_maintain,授予用户执行维护操作的权限。

pg_basebackup(包含在 PostgreSQL 中的备份实用程序),现在支持增量备份并添加了 pg_combinebackup 实用程序来重建完整备份。另外,pg_dump 包括一个名为 --filter 的新选项,允许你在生成转储文件时选择要包含的对象。

PostgreSQL 17 还包括对监控和分析功能的增强。EXPLAIN 现在显示本地 I/O 块读取和写入所花费的时间,并包括两个新选项:SERIALIZE 和 MEMORY,这些选项有助于查看数据传输转换的时间以及使用的内存量。PostgreSQL 17 现在报告索引清理的进度,并添加了 pg_wait_events 系统视图,当与 pg_stat_activity 结合使用时,可以更深入地了解活动会话为何等待。

扩展信息学习点击下方文字可跳转相对应的文章

Windows 上安装 PostgreSQL图文教程

PostgreSQL下的SQL Shell(psql)工具

详解PostgreSQL如何创建数据库?

点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。


动动小手点击加关注呦☟☟☟

SQL数据库运维
专注于SQL数据库相关领域,Oracle、MySQL、SQL Server、PostgreSQL、大数据,数据分析等相关技术内容的分享,关注回复「SQL」可免费获取海量学习资料,包含文档、视频及部分常用软件安装包和日常小工具等资源。
 最新文章