PostgreSQL 12 DBMS 发布

经过一年的发展 发表 PostgreSQL 12 DBMS 的新稳定分支。新分支的更新 会出来的 为期五年,直至 2024 年 XNUMX 月。

创新:

  • 添加了对“生成的列",其值是根据覆盖同一个表中其他列的值的表达式计算的(类似于视图,但针对单个列)。 生成的列可以有两种类型 - 存储列和虚拟列。 在第一种情况下,该值是在添加或更改数据时计算的,而在第二种情况下,该值是在每次读取时根据其他列的当前状态计算的。 目前,PostgreSQL仅支持存储生成列;
  • 添加了使用以下命令从 JSON 文档查询数据的功能 路径表达式XPath的 并在 SQL/JSON 标准中定义。 利用现有的索引机制,提高对JSONB格式存储的文档处理此类表达式的效率;
  • 默认启用的是使用基于 LLVM 开发的 JIT(Just-in-Time)编译器来加速 SQL 查询处理期间某些表达式的执行。 例如,JIT用于加速WHERE块内的表达式、目标列表、聚合表达式以及一些内部操作的执行;
  • 索引性能已显着提高。 B 树索引经过优化,可在索引频繁更改的环境中工作 - TPC-C 测试显示性能整体提高,磁盘空间消耗平均减少 40%。 减少了为 GiST、GIN 和 SP-GiST 索引类型生成预写日志 (WAL) 时的开销。 对于 GiST,添加了创建包含其他列的包装索引(通过 INCLUDE 表达式)的功能。 运行中 创建统计 提供对最常见值(MCV)统计信息的支持,以便在使用不均匀分布的列时生成更优化的查询计划;
  • 分区实现针对跨越具有数千个分区的表的查询进行了优化,但仅限于选择有限的数据子集。 使用 INSERT 和 COPY 操作向分区表添加数据的性能得到了提高,并且还可以通过“ALTER TABLE ATTACH PARTITION”添加新的部分,而不会阻塞查询执行;
  • 添加了对通用表表达式的自动内联扩展的支持(公用表表达式、CTE),允许使用通过WITH 语句指定的临时命名结果集。 内联部署可以提高大多数查询的性能,但目前仅用于非递归CTE;
  • 添加了支持 不确定性 “排序规则”区域设置的属性,它允许您考虑字符的含义来设置排序规则和匹配方法(例如,在对数字值进行排序时,数字前面是否存在减号和点以及不同的类型)考虑拼写的情况,并且在比较时,不考虑字符的大小写和重音符号的存在);
  • 添加了对多因素客户端身份验证的支持,其中在 pg_hba.conf 中,您可以将 SSL 证书身份验证 (clientcert=verify-full) 与其他身份验证方法(例如 scram-sha-256)结合起来进行身份验证;
  • 添加了对通过身份验证时通信通道加密的支持 GSSAPI,无论是在客户端还是在服务器端;
  • 如果 PostgreSQL 使用 OpenLDAP 构建,则添加了对基于“DNS SRV”记录确定 LDAP 服务器的支持;
  • 添加操作“同时重新索引» 重建索引而不阻塞对索引的写操作;
  • 团队已添加 pg_checksums,它允许您启用或禁用检查现有数据库的数据页校验和(以前仅在数据库初始化期间支持此操作);
  • 为 CREATE INDEX、REINDEX、CLUSTER、VACUUM FULL 和 pg_checksums 操作提供进度指示器的输出;
  • 添加了命令“创建访问方法» 连接针对各种特定任务优化的新表存储方法的处理程序。 目前唯一内置的表访问方法是“堆”;
  • recovery.conf 配置文件已与 postgresql.conf 合并。 作为故障后过渡到恢复状态的指标,现在 应该 使用recovery.signal和standby.signal文件。

来源: opennet.ru

添加评论