再说PostgreSQL 14之前,先来带大家回复一下之前发布的各个版本和特性。
PostgreSQL 9.0 :支持64位windows系统,异步流数据复制、Hot Standby;
PostgreSQL 9.1 :支持数据同步复制,unlogged tabels、serializable snapshot isolation、FDW 外部表。
此版本后,PostgreSQL 开始得到中国多个行业用户的关注,开始有应用于电信、保险、制造业等边缘系统。
PostgreSQL 10:跳过到9.6版本,直接说10是在2017年5月18日发行的,新增了很多特性,其中重量级的特性如下:
PostgreSQL 11:
分区增强
支持哈希分区。
支持分区表上的主键、外键、索引以及触发器。
支持创建默认分区,用于存储不属于其他任何分区的数据。
更新分区键值得UPDATE语句可以将受影响的行移动到相应的新分区中。
增强了查询语句处理和执行时的分区裁剪(分区排除),进而提高了SELECT查询语句的性能。
支持智能分区连接(partition-wise join)和智能分区聚合(partition-wise aggregation)。
并行执行
并行创建 B-tree 索引。
并行执行的CREATE TABLE … AS、CREATE MATERIALIZED VIEW以及特定的UNION查询。
更好的并行哈希连接和并行顺序扫描。
存储过程,支持嵌入事务。
即时编译(JIT),支持表达式的快速求值。
窗口函数,支持 SQL:2011 标准中的所有窗口范围(window frame)选项,包括RANGE distance PRECEDING/FOLLOWING、GROUPS模式以及窗口排除选项。
覆盖索引(covering index),支持使用CREATE INDEX … INCLUDE创建覆盖索引。
许多其他性能改进,包括快速执行带非空默认值的ALTER TABLE … ADD COLUMN语句。
PostgreSQL 12:
支持 SQL/JSON path
支持 Generated Columns
CTE 支持 Inlined With Queries
新增 Pluggable Table Storage Interface
分区表性能大幅提升
在线重建索引(Reindex Concurrently)
PostgreSQL 13:
只说一些大模块,13版本对索引和查找系统有了很大的改进,大型数据库非常受用,减少了空间提高了索引的性能。
并且新增了数据管理体验,为了日常管理进行了优化,为应用程序开发人员提供了便利。
PostgreSQL 14这个版本对大量的数据库链接时的事务吞吐量有了很大的改进,不光是事务在活动状态,在空闲状态也包括在内。
PostgreSQL 14减少了B-树索引的资源消耗,包括频繁更新索引导致的表膨胀。Gist索引可以在构建过程中预先排序数据,可以更快地创建而且减少索引大小。SP-GIST支持覆盖索引,可以使用INCLUDE子句索引增加不可搜索的额外字段。
PostgreSQL 14增加了许多并行查询功能,出了对并行熟悉顺序扫码的整体性能提升之外,,PL/pgSQL 中的 RETURN QUERY 指定现在可以并行执行,REFRESH MATERIALIZED VIEW 命令也可以使用并行查询。PostgreSQL 14 还增加了使用 FDW 查询远程数据库时的并行执行功能。对于 PostgreSQL 外部数据封装器 postgres_fdw,当设置了 async_capable 标识时可以使用并行查询。postgres_fdw 还支持批量插入,使用 IMPORT FOREIGN SCHEMA 命令导入表分区,以及外部表上的 TRUNCATE 命令。
该版本还改进了分区系统,包括更新或删除数据行影响很少分区时的性能提升。PostgreSQL 14 可以使用 ALTER TABLE … DETACH PARTITION … CONCURRENTLY 命令以非阻塞的方式卸载分区。
上个版本引入的增量排序功能在 PostgreSQL 14 中可以用于窗口函数。该版本增强了扩展统计的范围,可以支持表达式的扩展统计。
几十年来,PostgreSQL 一直支持“超大字段”的压缩存储(TOAST 技术),新版本增加了使用 LZ4 算法压缩字段的功能。
除了以上内容,还新增了大量新功能一部分功能的改进,完整的新特性列表大家可以参考官方的发行说明。