innodb_online_alter_log_max_size是否从ram或Hard Disk获取内存

时间:2017-08-30 17:59:02

标签: mysql innodb alter

我在更改巨大的表(400 G)时添加了索引时出现了Mysql(5.7)错误:

ERROR 1799 (HY000): Creating index 'FTS_DOC_ID_INDEX' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again.

我想我必须增加innodb_online_alter_log_max_size,但我担心它会从RAM中取出它,因为它已经足够了。

N.B:tmpdir路径上有足够的空间。

1 个答案:

答案 0 :(得分:1)

它使用磁盘空间,而不是RAM。但我建议你做实验。使用create table foo_small like foo,然后使用带有insert into foo_small select * from foo where ...的WHERE子句,这样您就可以轻松地复制感兴趣的表,大大小于400 GiB。现在练习昂贵的“索引添加”操作,并在执行大量操作之前验证资源消耗是否符合您的预期。