经过一年的发展
主
- 添加了对“
生成的列 ",其值是根据覆盖同一个表中其他列的值的表达式计算的(类似于视图,但针对单个列)。 生成的列可以有两种类型 - 存储列和虚拟列。 在第一种情况下,该值是在添加或更改数据时计算的,而在第二种情况下,该值是在每次读取时根据其他列的当前状态计算的。 目前,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