digoal
2020-09-26
PostgreSQL , 13
- 在先前PostgreSQL版本的基础上,PostgreSQL 13可以有效地处理标准数据库索引B-tree中的重复数据。 这降低了B-tree索引所需的总体使用空间,同时提高了整体查询性能。
- PostgreSQL 13引入了增量排序,其中查询中来自较早步骤的已排序数据可以加快后续步骤的排序。
- If a result is already sorted by several leading keys, this allows for batch sorting of additional trailing keys because the previous keys are already equal. This is controlled by enable_incrementalsort.
- PostgreSQL现在可以使用扩展的统计信息(通过CREATE STATISTICS访问)来创建增强带有OR子句和列表中的IN/ANY查找的查询计划。
- PG 10引入了create statistic 扩展功能, 多列统计信息,PG 13 增加了OR和IN的选择性精准度。 支持类似where a =x and|or b=x and|or c=x and|or d in () 这类多列条件的选择性精准度.
- https://www.postgresql.org/docs/13/sql-createstatistics.html
- 在PostgreSQL 13中,更多类型的聚合和分组可以利用PostgreSQL的高效哈希聚合功能,因为具有大聚合的查询不必完全放在内存中。
- Allow hash aggregation to use disk storage for large aggregation result sets (Jeff Davis)
- Allow grouping sets to use hash aggregation with disk storage for large grouping set results (Jeff Davis)
- This is controlled by enable_hashagg_disk.
- 带有分区表的查询性能得到了提高,因为现在有更多情况可以修剪分区并且可以直接连接分区。
- For example, partitionwise joins can now happen between partitioned tables even when their partition bounds do not match exactly.
- PostgreSQL 13通过引入索引的并行清理来继续改进清理系统。除了它提供的清理性能优势外,由于管理员可以选择要运行的并行Worker进程的数量,因此可以针对特定工作负载调整此新功能的使用。
- 数据插入现在还可以触发自动清理过程。
- a vacuum scan has other useful side-effects such as setting page-all-visible bits, which improves the efficiency of index-only scans.
- Also, allowing an insert-only table to receive periodic vacuuming helps to spread out the work of “freezing” old tuples,
- 复制槽(Replication slots)用于防止预写日志(WAL)在备库收到之前被删除,可以在PostgreSQL 13中进行调整以指定要保留的WAL文件的最大数量,并有助于避免磁盘空间不足的错误。
- PostgreSQL 13还增加了更多管理员可以监视数据库活动的方式,包括从EXPLAIN查看WAL使用情况的统计信息(explain命令增强),
- 基于流的备份进度(流复制协议支持, pg_basebackup增强),
- 以及ANALYZE命令的进度。
- 另外,还可以使用新的pg_verifybackup命令来检查pg_basebackup命令输出的完整性。
- PostgreSQL 13让使用来自不同数据源的PostgreSQL数据类型更加容易。此版本在SQL/JSON路径支持中添加了datetime()函数,该函数将有效的时间格式(例如ISO 8601字符串)转换为PostgreSQL本地类型。
- 此外,UUID v4 生成函数gen_random_uuid()现在可以直接使用而无需安装任何扩展。
- PostgreSQL的分区系统更加灵活,因为分区表完全支持逻辑复制和BEFORE行级触发器。
- PostgreSQL 13中的FETCH FIRST语法现已扩展为可包含WITH TIES子句。 指定时,WITH TIES包括基于ORDER BY子句的结果集中最后一行相匹配的任何其他行。
- PostgreSQL的扩展系统是其强大功能的关键组成部分,因为它允许开发人员扩展其功能。在以前的版本中,新的扩展只能由数据库超级用户安装。为了更轻松地利用PostgreSQL的可扩展性,PostgreSQL 13添加了"可信扩展"的概念,该概念允许数据库用户使用安装超级用户标记为"受信任"的扩展。某些内置扩展默认情况下标记为受信任,包括 pgcrypto, tablefunc, hstore等。
- 普通用户也能执行create extension xx; -- 只要这些插件被标记为“可信扩展", 在插件的control文件中定义.
- 对于需要安全身份验证方法的应用程序,PostgreSQL 13允许客户端在使用SCRAM身份验证时要求通道绑定,并且PostgreSQL外部数据包装器(postgres_fdw)现在可以使用基于证书的身份验证。
- 《PostgreSQL 13 & 14 对齐hashagg和hash join的explain analyze输出内容》
- 《PostgreSQL 13 新增 hash 内存参数, 提高hash操作性能 - hash_mem_multiplier - work_mem的倍数, 解绑hash算子与排序算子的内存参数控制》
- 《PostgreSQL 13 & 14 hashagg 性能增强(分组选择性精准度) - 使用hll评估hash字段的选择性, 而非使用记录数》
- 《PostgreSQL 13 pg_stat_statements支持跟踪plan统计信息》
- 《PostgreSQL 13 支持wal insert统计框架 - wal activity monitor》
- 《PostgreSQL 13 preview - rangeagg(聚合) to range[]》
- 《PostgreSQL 13 preview - gin倒排索引性能优化 - 防止gin full scan(逻辑推理)》
- 《PostgreSQL 13 preview - 逻辑订阅支持row filter》
- 《PostgreSQL 13 preview - Disk Quota 功能 - add smgr block hooks》
- 《PostgreSQL 13 preview - NOT IN -> anti join 性能优化》
- 《PostgreSQL 13 preview - wait event sample - 等待事件统计(插件,hook) - ASH - performance insight》
- 《PostgreSQL 13 preview - logical decoding io优化 logical_decoding_work_mem》
- 《PostgreSQL 13 preview - pgbench server-side产生tpc-b测试数据(使用generate_series产生大量测试数据)》
- 《PostgreSQL 13 preview - SQL采样比例设置 log_min_duration_sample log_min_duration_sample》
- 《PostgreSQL 13 preview - drop database force 自动kill DATABASE 连接》
- 《PostgreSQL 13 preview - pgbench 内置tpcb支持 pgbench_account 分区表》
- https://www.postgresql.org/docs/13/release-13.html
- 《PostgreSQL 13 特性解读》
- https://www.postgresql.org/about/press/presskit13/zh/
您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.