《8-黄尖-一些值得称道的PostgreSQL新特性.pdf》由会员分享,可在线阅读,更多相关《8-黄尖-一些值得称道的PostgreSQL新特性.pdf(17页珍藏版)》请在三个皮匠报告上搜索。
1、PostgreSQL新特性介绍黄尖查询优化器的改进01.逻辑复制的增强02.其他一些感兴趣的点03.CONTENTS查询优化器的改进查询优化器的改进-聚合的效率提升4ORDER BY/DISTINCT 等聚合函数会利用底层的序来避免排序CREATE TABLE aggtest(a INT,b text);15及之前版本16版本来源:https:/ Anti Join5开始支持Right Anti Join,会自动以较小的表构造hash表CREATE TABLE small(a int);CREATE TABLE large(a int);INSERT INTO small SELECT a F
2、ROM generate_series(1,100)a;INSERT INTO large SELECT a FROM generate_series(1,1000000)a;15及之前版本16版本来源:https:/ Anti Join,会自动以较小的表构造hash表CREATE TABLE odd(a INT);CREATE TABLE even(a INT);INSERT INTO odd SELECT a FROM generate_series(1,1000000,2)a;INSERT INTO even SELECT a FROM generate_series(2,1000000
3、,2)a;15及之前版本16版本来源:https:/ SubscriberPG SubscriberOther Subscriberstreamingreplicationreplicationlogical数据下游可以通过备节点订阅数据修改从而降低主库的工作负载。逻辑复制的增强-standby节点逻辑复制主库创建流复制和逻辑复制用户搭建流复制备库,指定一些参数主库创建发布数据下游创建订阅,将订阅地址指向备库验证同步状态32145standby节点逻辑复制配置逻辑复制的增强-双向逻辑复制10双向复制可以扩展主库的访问能力,对于写入密集型的应用更加友好。PublisherSubscriberPu
4、blisherSubscriberDataDatalogical replicationlogical replication逻辑复制的增强-双向逻辑复制避免回环11通过在订阅者上设置origin=none 标志,发布者会只向订阅者发送那些没有包含origin messages的WAL记录,而不会发送本地的订阅者接收到的记录,从而避免数据回环。PublisherSubscriberDataPublisherApplicationDataorigin=node2origin=nullNode1Node2UserNode2Node2逻辑复制的增强-双向逻辑复制12两个主库创建逻辑复制用户两个主库分
5、别创建发布两个主库分别互相订阅对方(设置origin=none)321双向逻辑复制配置其他一些感兴趣的点其他一些感兴趣的点-pg_dump的增强14pg_dump增强增强pg_dump可以拥有更多的压缩级别级别越高,压缩比越高,但是可能也更耗时和占用更多资源增加更多的压缩级别long可以提高压缩比,但代价是增加了内存使用增加压缩long模式支持pg_dump的-Z选项新增了lz4和zstd压缩算法,压缩效率得到了提升增加新的压缩方式pg_dump添加了导出子表和分区的功能对子表和分区表的支持其他一些感兴趣的点-direct_io(开发特性)15目前的问题:操作系统 page cache和数据库
6、 buffer pool 双缓存,存在一定的内存浪费开始支持dio,参数debug_io_direct-wal_init:新建wal文件时使用direct io-wal:读写wal文件时使用direct io-data:读写数据文件时使用direct iopgbench测试(1000万数据)未开启DIO开启DIO开启DIO并把buffer pool提升到两倍大小初始化数据(时间)17.66 s 39.56 s 36.81 s 测试(tps)6其他一些感兴趣的点-pg_stat_io16跟踪给定后端类型、I/O对象类型(即是否为临时表)和I/O上下文的统计信息。主要统计数据是计算I/O操作:读、写和扩展。对于每个I/O操作,以字节为单位的大小,以帮助解释统计信息。此外,还会跟踪共享缓冲区移出、环形缓冲区重新使用和fsync调用的数量。THANKSTHANKSSpeaker name and title