我在更改巨大表(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
路径上有足够的空间。
它使用磁盘空间而不是ram。但是我建议您进行实验。使用create table foo_small like foo
,然后使用insert into foo_small select * from foo where ...
的WHERE子句,因此您的感兴趣表的小复制品很小,小于400 GIB。现在练习昂贵的"索引添加"操作,并在进行大型操作之前验证资源消耗与您的期望一致。