龙空技术网

MYSQL存储引擎InnoDB(七十六):为在线DDL操作配置并行线程

泡泡研究笔记 42

前言:

此刻兄弟们对“mysql并行排序算法”大体比较关切,看官们都需要了解一些“mysql并行排序算法”的相关资讯。那么小编在网上汇集了一些关于“mysql并行排序算法””的相关资讯,希望咱们能喜欢,兄弟们快快来学习一下吧!

创建或重建二级索引的在线 DDL 操作的工作流程包括:

1、扫描聚集索引并将数据写入临时排序文件

2、对数据进行排序

3、将临时排序文件中的排序数据加载到二级索引中

可用于扫描聚集索引的并行线程数由 innodb_parallel_read_threads 变量定义。默认设置为 4。最大设置为 256,这是所有会话的最大数量。扫描聚集索引的实际线程数是 innodb_parallel_read_threads 设置定义的数量或要扫描的索引子树的数量,以较小者为准。如果达到线程限制,会话将回退到使用单个线程。

排序和加载数据的并行线程数由MySQL 8.0.27 中引入的 innodb_ddl_threads变量控制。默认设置为 4。在 MySQL 8.0.27 之前,排序和加载操作是单线程的。

以下限制适用:

1、构建包含虚拟列的索引不支持并行线程。

2、全文索引创建不支持并行线程。

3、空间索引创建不支持并行线程。

4、使用虚拟列定义的表不支持并行扫描。

5、使用全文索引定义的表不支持并行扫描。

6、使用空间索引定义的表不支持并行扫描。

标签: #mysql并行排序算法