网站建设规划书主题,做视频网站有什么,衡水企业网站建设报价,wordpress文章不显示作者前言
MySQL 8.0.27 引入了一个新变量来控制 InnoDB 可用于创建#xff08;排序和构建#xff09;二级索引的最大并行线程数#xff1a;innodb_ddl_threads 通过调整该参数#xff0c;可以提升二级索引的创建速度。
参数介绍
1. innodb_ddl_threads
创建二级索引时…前言
MySQL 8.0.27 引入了一个新变量来控制 InnoDB 可用于创建排序和构建二级索引的最大并行线程数innodb_ddl_threads 通过调整该参数可以提升二级索引的创建速度。
参数介绍
1. innodb_ddl_threads
创建二级索引时在排序和构建阶段使用线程的个数一定程度上可以加快索引的创建速度默认为 4 个。
2. innodb_ddl_buffer_size
默认为 1 MB该参数是避免开启很多线程后由于内存不足导致加索引失败。
3. innodb_parallel_read_threads
默认为 4并行读取聚簇索引的线程数可以提升 check table 速度。
4. innodb_online_alter_log_max_size
该参数是 online DDL 中的参数如果变更期间依然有业务请求可能会产生大量的变更日志 innodb_ddl_threads 的使用场景肯定也是大表加索引变更持续时间可能会更长所以需要注意该参数的大小如果过小会导致 DDL 变更失败当然是在线变更的场景下。
测试结果
可以使用 mysql_random_data_load 造一张大表
mysql_random_data_load -h127.0.0.1 -uroot -p --max-threads10 test test_index 100000000下面是实验结果可以参考
ddl buffer sizeddl threadsparallel read theadsexecution time1048576449 min 0.6838 sec104857600884 min 8.3601 sec1048576000883 min 9.1862 sec104857600016163 min 7.4079 sec10485760001683 min 4.1161 sec10485760001243 min 8.7854 sec10485760004123 min 5.9497 sec1048576000443 min 12.2435 sec2097152000442 min 43.6280 sec2097152000882 min 44.6516 sec
参考资料https://dev.mysql.com/doc/refman/8.0/en/online-ddl-parallel-thread-configuration.html