PolarDB要在一张6000万行数据的表上创建索引,是否可以加并行?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
PolarDB在一张6000万行数据的表上创建索引是可以加并行的。
PolarDB MySQL版
对于PolarDB MySQL版,支持通过设置参数来开启并行DDL功能以加速索引创建。可以通过 innodb_polar_parallel_ddl_threads 参数控制每一个DDL操作的并行线程数,若该参数值不为1,当执行创建二级索引操作时将自动开启并行DDL。如果仅开启并行DDL功能仍不能满足需求,还可以通过 innodb_polar_use_sample_sort 参数对创建索引过程中的排序进行进一步优化。此外,在创建全局二级索引(GSI)时,也支持使用并行DDL来并行创建。
PolarDB PostgreSQL版(兼容Oracle)
PolarDB PostgreSQL版(兼容Oracle)提供了跨机并行查询功能,可用于加速构建B - tree索引,包括B - Tree索引的GLOBAL索引。通过设置 polar_px_enable_btbuild 参数开启跨机并行查询加速创建索引功能,并指定 polar_px_btbuild_parallelism 参数来设置并行度。另外,PolarDB PostgreSQL版(兼容Oracle)还提供了Ganos并行创建空间索引功能,采用空间排序(GiST Sort)的方法,可将索引构建过程并行化,但该方法仅适用于点数据(Point)。
不过在使用并行创建索引时,由于并行线程数增加,会占用更多硬件资源(如CPU、内存、IO等),可能影响同一时间内执行的其他SQL操作。因此,建议在业务低峰或硬件资源充足时使用并行DDL。
可以,参考https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/parallel-ddl?spm=a2c4g.11186623.0.i3 此回答整理自钉群“PolarDB专家面对面 - 大表&分区表& 冷温热数据管理& XEngine高压缩引擎功能”
阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。