PostgreSQL14版本发布,带你回顾新老特性
再说PostgreSQL14之前,先来带大家回复一下之前发布的各个版本和特性。
PostgreSQL9。0:支持64位windows系统,异步流数据复制、HotStandby;
PostgreSQL9。1:支持数据同步复制,unloggedtabels、serializablesnapshotisolation、FDW外部表。
此版本后,PostgreSQL开始得到中国多个行业用户的关注,开始有应用于电信、保险、制造业等边缘系统。
PostgreSQL10:跳过到9。6版本,直接说10是在2017年5月18日发行的,新增了很多特性,其中重量级的特性如下:内置分区表(NativeTablePartitioning)逻辑复制(LogicalReplication)并行功能增强(EnhancementofParallelQuery)QuorumCommitforSynchronousReplication全文检索支持JSON和JSONB数据类型
PostgreSQL11:
分区增强
支持哈希分区。
支持分区表上的主键、外键、索引以及触发器。
支持创建默认分区,用于存储不属于其他任何分区的数据。
更新分区键值得UPDATE语句可以将受影响的行移动到相应的新分区中。
增强了查询语句处理和执行时的分区裁剪(分区排除),进而提高了SELECT查询语句的性能。
支持智能分区连接(partitionwisejoin)和智能分区聚合(partitionwiseaggregation)。
并行执行
并行创建Btree索引。
并行执行的CREATETABLEAS、CREATEMATERIALIZEDVIEW以及特定的UNION查询。
更好的并行哈希连接和并行顺序扫描。
存储过程,支持嵌入事务。
即时编译(JIT),支持表达式的快速求值。
窗口函数,支持SQL:2011标准中的所有窗口范围(windowframe)选项,包括RANGEdistancePRECEDINGFOLLOWING、GROUPS模式以及窗口排除选项。
覆盖索引(coveringindex),支持使用CREATEINDEXINCLUDE创建覆盖索引。
许多其他性能改进,包括快速执行带非空默认值的ALTERTABLEADDCOLUMN语句。
PostgreSQL12:
支持SQLJSONpath
支持GeneratedColumns
CTE支持InlinedWithQueries
新增PluggableTableStorageInterface
分区表性能大幅提升
在线重建索引(ReindexConcurrently)
PostgreSQL13:
只说一些大模块,13版本对索引和查找系统有了很大的改进,大型数据库非常受用,减少了空间提高了索引的性能。
并且新增了数据管理体验,为了日常管理进行了优化,为应用程序开发人员提供了便利。PostgreSQL14
PostgreSQL14这个版本对大量的数据库链接时的事务吞吐量有了很大的改进,不光是事务在活动状态,在空闲状态也包括在内。
PostgreSQL14减少了B树索引的资源消耗,包括频繁更新索引导致的表膨胀。Gist索引可以在构建过程中预先排序数据,可以更快地创建而且减少索引大小。SPGIST支持覆盖索引,可以使用INCLUDE子句索引增加不可搜索的额外字段。
PostgreSQL14增加了许多并行查询功能,出了对并行熟悉顺序扫码的整体性能提升之外,,PLpgSQL中的RETURNQUERY指定现在可以并行执行,REFRESHMATERIALIZEDVIEW命令也可以使用并行查询。PostgreSQL14还增加了使用FDW查询远程数据库时的并行执行功能。对于PostgreSQL外部数据封装器postgresfdw,当设置了asynccapable标识时可以使用并行查询。postgresfdw还支持批量插入,使用IMPORTFOREIGNSCHEMA命令导入表分区,以及外部表上的TRUNCATE命令。
该版本还改进了分区系统,包括更新或删除数据行影响很少分区时的性能提升。PostgreSQL14可以使用ALTERTABLEDETACHPARTITIONCONCURRENTLY命令以非阻塞的方式卸载分区。
上个版本引入的增量排序功能在PostgreSQL14中可以用于窗口函数。该版本增强了扩展统计的范围,可以支持表达式的扩展统计。
几十年来,PostgreSQL一直支持超大字段的压缩存储(TOAST技术),新版本增加了使用LZ4算法压缩字段的功能。
除了以上内容,还新增了大量新功能一部分功能的改进,完整的新特性列表大家可以参考官方的发行说明。