2017-08-30 56 views
0

我而改变巨大的表(400 G)添加一个索引有一个mysql的(5.7)错误:是否innodb_online_alter_log_max_size把内存从RAM或硬盘

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路径上有足够的空间。

回答

0

它使用磁盘空间而不是RAM。但我建议你做实验。使用create table foo_small like foo,然后使用带有insert into foo_small select * from foo where ...的WHERE子句,以便您有一个方便的小型副本感兴趣的表,显着小于400 GiB。现在练习昂贵的“索引添加”操作,并在执行巨大操作之前验证资源消耗是否符合您的期望。