创建或重建二级索引的在线 DDL 操作在索引创建的不同阶段分配临时缓冲区。该 innodb_ddl_buffer_size变量在 MySQL 8.0.27 中引入,定义了在线 DDL 操作的最大缓冲区大小。默认设置为 1048576 字节 (1 MB)。该设置适用于由执行在线 DDL 操作的线程创建的缓冲区。定义适当的缓冲区大小限制可避免创建或重建二级索引的在线 DDL 操作可能出现的内存不足错误。每个 DDL 线程的最大缓冲区大小是最大缓冲区大小除以 DDL 线程数 ( innodb_ddl_buffer_size/ innodb_ddl_threads)。
innodb_ddl_buffer_size
innodb_ddl_threads
在 MySQL 8.0.27 之前, innodb_sort_buffer_size变量定义了创建或重建二级索引的在线 DDL 操作的缓冲区大小。
innodb_sort_buffer_size