TDSQL-C MySQL 版(TXSQL 内核)提供了并行 DDL 能力。该能力基于 InnoDB 层的 Parallel Reader 框架,充分利用多核 CPU 与存储 I/O 带宽,显著降低数据拷贝耗时,从而缩短 DDL 整体执行时间,避免阻塞后续相关的 DML 操作,缩短执行 DDL 操作的等待时间。
支持版本
TDSQL-C MySQL 版8.0,社区版本8.0.22或8.0.30。
使用限制
目前,以下场景不能使用并行 DDL:
未打开 innodb_txsql_parallel_ddl 开关。
table size 比较小。
使用 AUTO_INCREMENT 列创建索引。
创建 spatial index。
创建 fts index。
索引包含 multi-value 列。
索引包含 virtual 列。
参数说明
TDSQL-C MySQL 版并行 DDL 能力通过参数设置来实现,根据内核版本的不同,分为以下两种情形:
情形一:内核版本为3.1.14及以下时,通过 innodb_parallel_ddl,innodb_ddl_threads,innodb_ddl_buffer_size 参数控制。
参数名称 | 重启 | 全局参数 | 默认值 | 参数可修改值 | 说明 |
innodb_parallel_ddl | 否 | 否 | OFF | OFF | ON | 并行 DDL 功能开关。 OFF:关闭并行 DDL 功能。 ON:开启并行 DDL 功能。 |
innodb_ddl_threads | 否 | 否 | 4 | [1 - 256] | 控制每一个 DDL 操作的并行线程数。 值为1表示执行单线程 DDL。 |
innodb_ddl_buffer_size | 否 | 否 | 10485760 | [1048576 - 536870912] | 用于控制并行建索引过程中保存采样样本的内存大小。 |
情形二:内核版本为3.1.15及以上时,通过 innodb_txsql_parallel_ddl,innodb_txsql_ddl_threads,innodb_txsql_ddl_buffer_size 参数控制。
参数名称 | 重启 | 全局参数 | 默认值 | 参数可修改值 | 说明 |
innodb_txsql_parallel_ddl | 否 | 否 | OFF | OFF | ON | 并行 DDL 功能开关。 OFF:关闭并行 DDL 功能。 ON:开启并行 DDL 功能。 |
innodb_txsql_ddl_threads | 否 | 否 | 4 | [1 - 256] | 控制每一个 DDL 操作的并行线程数。 值为1表示执行单线程 DDL。 |
innodb_txsql_ddl_buffer_size | 否 | 否 | 10485760 | [1048576 - 536870912] | 用于控制并行建索引过程中保存采样样本的内存大小。 |
使用说明
-- 内核版本为3.1.14及以下时SET innodb_parallel_ddl = ON;SET innodb_ddl_threads = 4; // 与实例规格相关,规格高的时候可以提高并行线程数-- 内核版本为3.1.15及以上时SET innodb_txsql_parallel_ddl = ON;SET innodb_txsql_ddl_threads = 4; // 与实例规格相关,规格高的时候可以提高并行线程数