PostgreSQL全球开发小组于昨天(9月26日)宣布PostgreSQL 17正式发布,这是世界上最先进的开源数据库的最新版本。
PostgreSQL 17 基于数十年的开源发展,在改善性能和可扩展的同时适应紧急数据访问和存储模式。此版本的PostgreSQL添加显著的整体性能提升,包括全面的vacuum内存管理的实现、存储访问的优化和改进高并发工作负载、大量数据导入和导出的加速以及查询索引的执行改进。
PostgreSQL 17 具有以下功能有利于全新的工作负载和类似的关键系统,例如开发人员使用SQL/JSON的JSON_TABLE命令和增强功能简化高可用性工作负载管理的逻辑复制,以及主要版本的升级。
“PostgreSQL 17 突出全球开源社区如何推动开发PostgreSQL,构建增强功能,帮助用户在他们的数据库之旅的各阶段”,PostgreSQL核心成员Jonathan Katz说道团队。“无论是大规模操作数据库的改进还是建立在令人愉快的新功能,PostgreSQL 17将增强您的数据管理体验。”
PostgreSQL是一个以可靠性、健壮性和可扩展性著称的创新数据管理系统,得益于超过25年的全球开发人员及社区的开源发展,已成为各种规模的组织首选的开放式关系数据库。
系统范围的性能提升
PostgreSQL vacuum 过程对于正常的操作至关重要,需要服务器实例资源操作。PostgreSQL 17引入了一种新的内部vacuum内存结构这样可以节省20倍的内存。这提高了vacuum速度和还减少了共享资源的使用,使您拥有更多的工作资源。
PostgreSQL 17 继续提高其I/O层的性能。由于改进预写日志(WAL)处理,并发工作负载的写吞吐量可能会提高两倍。此外,新的流式I/O接口加快了顺序扫描(从表中读取所有数据)以及统计器读取分析速度。
PostgreSQL 17还将其性能提升扩展到了查询执行。PostgreSQL 17 使用B-tree索引(PostgreSQL中的默认索引方法)时加入in语句,提升了查询性能。此外,BRIN索引现在支持并行构建。PostgreSQL 17包括对查询规划的一些改进,包括不为空约束的优化和改进处理通用表表达式(With查询)。 这个该版本增加了对以下各项的更多的SIMD(单指令/多数据)支持加速计算,包括对bit_count函数使用AVX-512。
进一步扩展强大的开发人员体验
PostgreSQL是第一个添加JSON支持的关系数据库(2012年),PostgreSQL 17增加了SQL/JSON标准的实现。JSON_TABLE现在在PostgreSQL 17中可用,允许开发人员将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外部数据包装器(postgres_fdw),以前在远程PostgreSQL实例上执行查询,现在可以推送EXISTS和IN子查询到远程服务器以实现更高效的处理。
PostgreSQL 17还包括一个内置的、平台独立的、不可变的排序提供程序,它保证是不可变的,并提供类似的将语义排序到C类排序规则,使用的是UTF-8编码,而不是SQL_ASCII。使用此新的排序规则提供程序可以确保基于文本的无论在哪里运行PostgreSQL,查询都将返回相同的排序结果。
逻辑复制增强功能可实现高可用性和主要版本升级
逻辑复制用于在许多用例中实时流式传输数据。然而在之前版本中,想要执行主要版本升级的用户必须删除逻辑复制槽,升级后重新同步数据发送给订阅者。从PostgreSQL 17升级开始,用户无需删除逻辑复制槽,从而简化了升级使用逻辑复制时处理。
PostgreSQL 17现在包括用于逻辑复制的故障转移控制,在高可用性环境中部署时更具弹性。此外,PostgreSQL 17 引入了pg_createsubscriber命令行工具,用于将物理副本转换为新的逻辑副本。
管理安全和操作的更多选项
PostgreSQL 17进一步扩展了用户如何管理他们的数据库系统。PostgreSQL有一个新的TLS选项,sslnegotiation,允许用户在使用ALPN(注册为postgresql数据库位于ALPN目录中)时执行直接TLS握手。PostgreSQL 17还添加了pg_maintain 预定义的角色,给用户权限允许用户执行维护操作。
pg_basebackup(PostgreSQL中包含的备份实用程序),现在支持增量备份,并添加这个pg_combinebackup实用工具重建完整备份。此外,pg_dump包括一个新的调用的选项--filter,它允许您选择要在何时包含哪些对象生成转储文件。
PostgreSQL 17还包括对监控和分析功能的增强。EXPLAIN现在显示本地I/O块读写所花费的时间,包括两个新选项:SERIALIZE和MEMORY,用于查看数据转换和数据传输所花费的时间以及使用了多少内存。PostgreSQL 17 现在可以报告清理索引的进度,并添加pg_wait_event系统视图,当与pg_stat_activity结合使用,可以更深入地了解活动会话等待的原因。
其他功能
PostgreSQL 17中添加了许多其他新功能和改进可能对您的使用也有帮助。请参阅发行说明对于新功能和更改功能的完整列表。
关于PostgreSQL
PostgreSQL是世界上最先进的开源数据库,全球社区中拥有数千名用户、贡献者、公司和组织。基于超过35年的工程经验,从加州大学伯克利分校开始的PostgreSQL继续无与伦比的发展速度。PostgreSQL的成熟功能集不仅可以媲美顶级专有数据库系统,在高级数据库功能、可扩展性、安全性和稳定性方面还超过了它们。
链接
原文:https://www.postgresql.org/about/news/postgresql-17-released-2936/
软件下载:https://www.postgresql.org/download/