作者:桦仔
10余年DBA工作经验,
微信:debolop
QQ交流群:740052625
公众号:数据库实战派
PostgreSQL 的主要版本发布时间如下
各个大版本的主要功能比较
2024年9月26日,PGDG正式发布了备受期待的PostgreSQL 17 GA版本。PostgreSQL 17建立在数十年的开源开发基础上,继续在性能、可扩展性和可靠性方面进行全方位提升,为关键数据存储和管理提供更优异的解决方案。
新版本的PostgreSQL提供了显著的整体性能提升,涵盖了
内存管理 存储访问 并发workload优化 批量import和export操作 查询索引的加速
对于开发者和DBA来说,PostgreSQL 17带来了更强大的新特性和改进,包括
全新的SQL/JSON支持 更简化的高可用性逻辑复制管理 无缝的版本升级体验。
系统范围的性能提升
在死元组清理方面,vacuum进程作为数据库维护的核心功能得到了重大改进。新版本引入了一个优化的vacuum内存管理结构,使内存消耗降低了20倍。这一改进不仅显著提升了vacuum的速度,同时减少了对共享资源的占用,使数据库能够更好地处理高并发工作负载。对于大量更新或删除操作的数据库,这一改进能够有效减轻系统压力。
在I/O性能方面也有显著提升。预写日志(WAL)处理的优化使得并发写入吞吐量提升了2倍,尤其在高并发环境中表现更加优异。此外,新的流式I/O接口加快了顺序扫描和ANALYZE统计信息更新的速度,进一步提升了性能。
在查询加速方面,B+树索引的优化提高了查询效率,并且可以对BRIN索引进行并行创建,大大缩短了索引构建时间。新增的SIMD指令支持,包括使用AVX-512优化的bit_count函数,也为高性能计算场景提供了额外的加速能力。
改善开发人员体验
作为最早引入JSON支持的关系型数据库,PostgreSQL在JSON处理上一直走在前列。新版本扩展了对SQL/JSON标准的支持,引入了JSON_TABLE,让开发者能够更方便地将JSON数据转化为标准表结构进行处理。这为开发人员提供了与JSON数据交互的另一种方式,使得处理复杂的JSON数据变得更加高效。
此外,还增加了更多的jsonpath表达式,支持将JSON数据转换为PostgreSQL的原生数据类型,如numeric、boolean、string和date/time类型。开发人员在处理JSON时,能够更加灵活地利用这些表达式进行复杂的数据操作,真正做到了json数据和关系型数据融为一体。
MERGE语句的进一步扩展,使开发人员在处理条件更新时更加灵活。而批量加载和导出的改进,使得使用COPY命令进行大规模数据导入时性能提升高达3倍,这对于大数据场景下的数据迁移和批量处理尤为重要。
新版本还对分区表进行了增强,支持在分区表中使用标识列和约束,并通过postgres_fdw将子查询推送到远程服务器,以实现跨数据库的高效数据处理。
逻辑复制增强功能
逻辑复制是实时数据同步场景中的关键功能。此前,执行主要大版本升级时,用户需要删除逻辑复制槽,导致升级后需要重新同步数据。而在新版本中,逻辑复制槽可以在升级过程中保留,极大简化了升级流程,减少了停机时间。
另外,官方还引入了用于逻辑复制的故障转移控制,使得高可用性环境下的部署更具弹性和容错性。此外,新增的pg_createsubscriber命令行工具,可以将物理副本转换为逻辑副本,极大提升了逻辑复制的管理灵活性。
安全性和操作性的更多选项
安全性方面,新版本继续扩展了用户管理数据库的能力。新增的TLS选项允许用户在使用ALPN时进行直接的TLS握手,提升了数据库连接的安全性和兼容性。此外,新版本还引入了新的预定义角色pg_maintain,为用户赋予数据库维护操作的权限。
在备份与恢复方面,pg_basebackup现在支持增量备份,并引入了新的pg_combinebackup工具,用于重建完整备份。pg_dump也增加了新的选项--filter,允许用户选择备份文件中包含哪些对象,使备份过程更加灵活和高效。
在监控和分析上,新版本增强了EXPLAIN命令的功能,能够显示本地I/O块读取和写入所花费的时间。此外,新增的pg_wait_events视图,结合pg_stat_activity视图,可以帮助用户深入了解活动会话的等待原因,从而优化数据库性能。
其他功能和改进
除了以上关键功能,新版本还引入了许多其他新功能和改进。新增了内置的、独立于平台的不可变排序规则程序,这对于处理跨区域和不同语言环境下的数据排序提供了更好的支持。
参考文章
https://www.postgresql.org/docs/17/release-17.html
https://www.postgresql.org/about/news/postgresql-17-released-2936/
https://www.oschina.net/news/313741/postgresql-17-released
加入我们的微信群,与我们一起探讨数据库技术,以及SQL Server、 MySQL、PostgreSQL、MongoDB 的相关话题。
微信群仅供学习交流使用,没有任何广告或商业活动。