点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!
2024年09月26日,PostgreSQL全球开发组宣布发布PostgreSQL 17,这是世界上最先进的开源数据库的最新版本。
PostgreSQL 是世界上最先进的开源数据库,拥有全球成千上万的用户、贡献者、公司和组织组成的社区。PostgreSQL 基于超过 35 年的工程经验,始于加利福尼亚大学伯克利分校,持续以无与伦比的开发速度发展。PostgreSQL 成熟的功能集不仅与顶级专有数据库系统相匹配,而且在高级数据库功能、可扩展性、安全性和稳定性方面超越了它们。
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,都会返回相同的排序结果。
针对高可用性和主要版本升级的逻辑复制增强功能
点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。
动动小手点击加关注呦☟☟☟