PostgreSQL 14改善资料类型支持并强化高工作负载性能

开源关系型数据库PostgreSQL发布第14个主要更新版本,该版本加入了一些新功能,让开发者更容易创建和部署需要访问资料的应用程序,新功能包括更方便的JSON访问,以及支持非连续资料范围,另外,在性能方面也有不少更新,提高PostgreSQL处理高负载和分布式工作负载的能力。

PostgreSQL自9.2版本开始支持JSON资料操作,而现在官方进一步改善JSON资料操作方法,在PostgreSQL 14中,jsonb资料类型现在支持数组形式的下标脚本表达式,方便开发者截取和修改JSON资料中的元素。

官方提到,这让PostgreSQL以及从JSON资料检索信息的语法更加一致,PostgreSQL 14所提供的下标脚本框架,可以被通用扩展到其他嵌套数据结构,包括本次所发布的hstore资料类型一样适用。

而同样在PostgreSQL 9.2所加入的范围类型,在这个最新的版本中,更新加入了多范围资料类型,来支持非连续范围。多范围指的是不重叠范围的有串行表,让开发人员可以编写更简单的查询,来处理复杂的范围串行,PostgreSQL中原生范围类型,包括日期、时间和数字,都支持多范围资料类型,而其他资料类型也可以经过扩展后,获得多范围支持。

官方在PostgreSQL 14大幅增加处理重度工作负载的性能,在多连接使用案例中,用户可以明显感觉到吞吐量的提升,官方提到,部分基准测试显示速度达两倍提升。

这个版本继续之前在B-tree索引上的改进,通过频繁更新索引来减少表格上索引的膨胀。PostgreSQL 14也将工作管线查询加入到数据库中,这将能明显改善高延迟连接,或是具有许多小型写入操作工作负载的性能。

在分布式工作负载方面,PostgreSQL 14使用逻辑复制时,PostgreSQL现在可以将正在进行的交易,流媒体传输给订阅者,因此能显著提升订阅者的大型交易工作,PostgreSQL 14还对由逻辑复制所支持的逻辑解码系统,进行了多项性能改善。

用于跨PostgreSQL和其他数据库联合工作负载的外部资料打包器,现在获得平行查询的能力,增加查询效率,还可以在外部表格上,批次插入资料,并且导入表格分区。

官方提到,这个版本对PostgreSQL平行查询功能进行多项改进,包括更好的平行顺序扫描性能,或是用户在使用RETURN QUERY指令执行平行查询时,系统也会执行的更快。此外,使用嵌套循环整合查询(JOIN)时,在PostgreSQL 14中添加额外的缓存,将会看到性能提升。

PostgreSQL 14还加入date_bin函数,供开发者将时间戳对齐至特定时间区间,还有添加符合SQL的SEARCH和CYCLE子句,在递归通用表格表达式中,用于顺序和周期侦测。

在安全性上,PostgreSQL 14可以方便地使用pg_read_all_data和pg_write_all_data预定义角色,指派用户对表格、查看图和架构的只读和唯写权限。