IT外包网管服务,大型分区表的并发性能是否提高了100倍? 阿里云RDS  PostgreSQL  12新特性解读

发布者:上海IT外包来源:http://www.lanmon.net点击数:1335

蓝盟IT小贴士,来喽!
PostgreSQL对分区表的支持已经持续了很长时间。 在10.0之前,分区表必须以用户继承的方式手动创建,从10.0开始支持声明分区,即在SQL中直接创建分区表,从而改进了分区表的易用性。在11中,HASH分区PostgreSQL  12在规划和执行阶段加强了分区裁剪策略,提高了分区表查询性能,进一步提高了分区表查询和数据导入性能,尤其是在分区数较多的场景中,查询优化效果更明显

如果阿里云创建了两个等效规范(4c8g  )的RDS  PostgreSQL  11和12实例并测试了不同的分区数,则使用COPY导入1亿行数据的性能比较如下所示。 可以看出,随着分区数的增加,导入性能总是优于PostgreSQL  11。 由于12支持批量插入分区表,因此在下一行之前只支持一次插入模式,因此COPY导入数据的性能得到了改进。


对于查询操作,在PostgreSQL  10中,依次检查各分区表,判断为可能存在满足条件数据,对于各分区表的处理与通常的表的处理流类似的PostgreSQL  11, PostgreSQL  12引入了分区剪辑功能,可以更快地识别需要访问的分区。PostgreSQL  12首先添加了分区剪辑功能,并且不会向每个分区加载元数据或生成适当的内部结构,因此查询计划需要更长的时间。
由此可知,该优化与查询条件的分区的过滤性相关,分区的过滤性越好,处理的分区越少,优化的效果越好。
根据分区的数目,按如下方式比较使用分区密钥(也是主密钥)查询的性能: 分区数越多,PostgreSQL  12的性能就越明显,最多可达150倍。 随着分区数量的增加,PostgreSQL  12的性能相对稳定。
B-tree索引广泛应用于数据库系统,有效地减少查询需要访问的数据量,并提高查询性能。 索引是“空间交换时间”查询优化策略,它本身也占用了一些存储空间,其性能对于查询也很重要。

PostgreSQL  12可以提高标准B-tree的整体性能,减少磁盘空间占用率,最多可以将复合索引的空间利用率降低40%,从而有效节省用户的磁盘空间。对于重复的B-tree索引,性能也很好另外,通过导入REINDEX  CONCURRENTLY命令,用户能够在不考虑业务的情况下重建索引。通过测试,您可以直观地感受到优化的B-tree索引空间占用。

文/上海蓝盟IT外包 编辑

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部