0
点赞
收藏
分享

微信扫一扫

postgresql 13新特性概要


整理了下今晚听的直播笔记,再选了部分比较能用上的新特性

1. 支持更多场景下的patition wise join
之前要求分区类型相同、范围相同,要求较苛刻;13开始不要求范围相同,支持一对多的patition wise join

2. 支持直接对分区表使用逻辑复制,不需对每个分区操作;分区表现在支持BEFORE关键字的行级触发器

3. btree index中更高效存储重复值,若列有10~15个重复值,索引约能小2.5~4倍

表的列可能会有很多相同的值,对应的B树索引也会有很多重复的索引记录。在PostgreSQL 13 中B树索引借鉴了GIN 索引的做法,将相同的Key 指向的对应行的ctid 链接起来。这样既减小了索引的大小,又减少了很多不必要的分裂,提高了索引的检索速度,我们把该优化称为B树索引的deduplicate 功能。另外,B树索引的deduplicate 功能是异步进行的,只有在B 树索引需要分裂的时候才会去做该操作,减少了该功能的日常开销。

需要在创建B 树索引的时候增加deduplicate_items 存储参数为on(PG 13 中index 该存储参数目前默认为on),deduplicate 功能才会开启。

postgresql 13新特性概要_分区表

4. 消除冗余full index scan
select * from tmp where t like '%1234%' and t like '%1%';

5. 优化器排序增强,支持增量排序,例如 order by c1,c2 当只有c1上有索引时,也能利用到该索引排序,利用已排好的c1再对c2排序,该特性由set enable_incrementalsort = on;参数控制

6. 支持大数据集查询时,hashagg 使用磁盘存储中间结果(enable_hashagg_disk=on)。在之前的版本中,如果hashagg 使用的内存预测要大于work_mem,则不使用hashagg。

7. insert支持触发autovacuum
避免仅有insert的表导致age达到21亿,强制进行freeze

8. 异步io增强,增强IO concurrency维护

9. 允许full table writes时不写wal日志,wal_level=minimal

10. 查看执行计划时增加了wal使用统计

11. 支持慢sql采样打印

12. 日志输出增强,绑定变量sql报错时打印参数值

13. 增加新视图,可以查看analyze,bakcup等执行进度

14. pg_stat_replication新增列,可查看有多少内容写到磁盘

15. 支持查看共享内存分配情况

16. 支持查看lru信息

17. 流复制两参数变为不重启可直接修改

18. 限制slot最大保留wal文件,避免忘记删除slot导致wal堆积

19. 逻辑decode内存控制

20. recovery异常控制开关 ignore_invalid_pages

21. 单表有多个索引时可以并行vacuum索引

22. 增加了数据类型,例如xid8

23. 支持 gen_random_uuid() 内置函数生成随机的UUID,而不依赖外部插件

24. 支持设置TLS版本

25. 支持备份有效性检测 pg_verifybackup

26. pg_basebackup支持预估备份总大小

27. reindexdb 命令增加–jobs 选项,允许用户并行重建索引

28. 允许插件被指定为trusted,不必修改源数据表

 

参考

https://www.postgresql.org/docs/13/release-13.html

https://github.com/digoal/blog/blob/master/202006/20200605_01.md

http://mysql.taobao.org/monthly/2020/06/05/

举报

相关推荐

0 条评论