系统极客一直在努力
专注操作系统及软件使用技能

PostgreSQL 17 发布:增强性能与开发者功能

PostgreSQL

PostgreSQL 17 正式发布!作为全球领先的开源数据库之一,PostgreSQL 17 在性能、可扩展性以及对新数据存储和访问模式的支持上都有了显著进步。接下来,让我们一起来看看新版本带来了哪些改进。

PostgreSQL 17 亮点功能

全方位性能提升

  • Vacuum 内存管理优化:PostgreSQL 17 对 vacuum 过程中的内存管理进行了大幅改进,内存使用量最高可减少 20 倍,不仅加快了 vacuum 的运行速度,还减少了对系统共享资源的竞争。
  • I/O 层面的增强:通过调整预写日志 (WAL) 的处理机制,在高并发环境下,写入吞吐量几乎提高了一倍。
  • 新的流式 I/O 接口:新接口加快了顺序扫描的速度,在使用ANALYZE命令收集统计信息时更加迅速。
  • 查询执行效率提升:B-tree 索引下 IN 子句的查询速度得到了改善。
  • BRIN 索引支持并行创建:现在,可以并行创建 BRIN 索引,此外还改进了查询规划器,比如更有效地处理 NOT NULL 约束和常用表表达式。
  • SIMD 技术强化:PostgreSQL 17 还扩展了 SIMD(单指令多数据)技术的应用范围,特别是利用 AVX-512 指令集来加速bit_count等函数的计算,进一步提高了数据处理的速度。

增强的开发者体验

  • 增强的 JSON 支持:PostgreSQL 一直以出色的 JSON 处理能力著称,新版本增加了 SQL/JSON 的JSON_TABLE命令,在将 JSON 数据转换为标准 PostgreSQL 表格时更加容易。
  • 新增 JSON 查询函数:引入了JSON_EXISTSJSON_QUERYJSON_VALUE等新的 SQL/JSON 构造器和查询函数,丰富了与 JSON 数据交互的方式。同时,对 jsonpath 表达式的扩展,让 JSON 数据向原生 PostgreSQL 数据类型的转换更加便捷。
  • 改进的 MERGE 命令:现在,MERGE命令支持RETURNING子句,并且可以用于更新视图。此外,批量数据加载和导出也变得更加高效;使用COPY 令导出大数据量的速度提升了两倍。并为COPY命令新增了ON_ERROR 选项,允许在遇到插入错误时继续执行导入操作,提高了数据处理的灵活性。
  • 分区表和远程数据管理升级:PostgreSQL 17 对分区数据和跨远程实例分布的数据管理功能进行了扩展。分区表现在支持标识列以及排除约束。postgres_fdw外部数据包装器能够将EXISTSIN 查询推送到远程服务器执行,从而提升整体处理效率。
  • 一致的文本排序:新版本还提供了一个内置的、平台无关的、不可变的排序机制。它能确保无论在哪种平台上,都能得到一致的文本排序结果,采用 UTF-8 编码并提供类似于 C 排序规则的排序语义。

逻辑复制功能升级

  • 简化主版本升级:PostgreSQL 17 让使用逻辑复制的用户,在进行主要版本升级时更加轻松。现在,升级过程中不再需要删除逻辑复制槽,从而减少了系统停机时间,并降低了升级后重新同步数据的需求。
  • 增强的故障转移控制:为了提高高可用环境下的稳定性,新版本引入了逻辑复制的故障转移控制机制。在发生故障时,系统能够更平稳地切换到备用节点,确保服务的连续性。
  • 新的命令行工具:PostgreSQL 17 新增了pg_createsubscriber工具,可以方便地将物理副本转换为逻辑副本,简化了配置过程,让设置和管理逻辑复制变得更加直观和高效。

安全与操作管理升级

  • TLS 协商优化:PostgreSQL 17 在安全性方面进行了改进,新增了 TLS 选项sslnegotiation,支持通过应用层协议协商 (ALPN) 直接进行 TLS 握手,提高了连接的安全性,并简化了加密通信的配置过程。
  • 预定义维护角色:引入了一个新的预定义角色pg_maintain,赋予用户执行数据库维护操作的权限,可以更方便地管理日常维护任务,同时保持最小权限原则。

备份与恢复增强

  • 增量备份支持:备份工具pg_basebackup现在支持增量备份。此外,新加入的pg_combinebackup工具可以从增量备份中重建完整的数据备份,为恢复提供了更多灵活性。
  • 更灵活的转储选项pg_dump工具现在提供了filter选项,允许在创建转储文件时指定需要包含或排除的对象,从而实现更精细的数据备份控制。

监控与分析能力提升

  • EXPLAIN 命令加强EXPLAIN命令现在能够显示本地 I/O 块读写的时间,帮助开发者更好地理解查询性能瓶颈。此外,还增加 SERIALIZEMEMORY两个新选项,用于分析数据转换时间和内存使用情况。
  • 索引清理进度报告:PostgreSQL 17 能够报告索引清理的进度,便于管理员了解维护任务的状态。
  • 会话等待状态查看:新增pg_wait_events系统视图,可以更容易地监控和诊断会话等待事件。

最后,PostgreSQL 17 还带来了许多其他新功能和改进。你可以访问官方公告进行查看,或阅读发布说明来了解详细更新内容;官方还提供了 HTML 和 PDF 格式的完整 man page 文档,方便你查看和参考。

赞(0) 赞赏

评论 抢沙发

微信赞赏