PolarDB要在一张6000万行数据的表上创建索引,是否可以加并行?

PolarDB要在一张6000万行数据的表上创建索引,是否可以加并行?

展开
收起
三分钟热度的鱼 2024-07-24 21:24:22 94 分享 版权
2 条回答
写回答
取消 提交回答
  • 资深 C++与人工智能程序员。精通 C++,善用其特性构建稳健架构。在人工智能领域,深入研习机器学习算法,借 C++与 OpenCV 等实现计算机视觉应用,于自然语言处理构建文本处理引擎。以敏锐洞察探索技术融合边界,用代码塑造智能未来。

    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。

    2025-03-27 23:30:21
    赞同 展开评论
  • 可以,参考https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/parallel-ddl?spm=a2c4g.11186623.0.i3 此回答整理自钉群“PolarDB专家面对面 - 大表&分区表& 冷温热数据管理& XEngine高压缩引擎功能”

    2024-07-24 22:19:26
    赞同 5 展开评论

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

还有其他疑问?
咨询AI助理