有没有办法在ALTER TABLE期间关闭临时表的创建?

时间:2019-06-12 07:52:21

标签: mysql optimization

有没有一种方法可以在MySQL中执行ALTER TABLE,告诉服务器首先跳过创建表的备份?我已经有该表的备份,并且正在对其进行一些测试(添加索引),因此我不在乎该表在此过程中是否损坏。我只是从备份中还原它。但是我关心的是ALTER TABLE快速完成,因此我可以看到测试结果。

考虑到我有一个很大的MyISAM表(700 GB),所以真的不能选择等待几个小时,这样MySQL可以先完成创建原始表的备份,然后再向其实际添加索引。

1 个答案:

答案 0 :(得分:1)

它没有做备份;它正在构建新版本。 (如果发生崩溃,现有表将用作备份。)

在InnoDB中,ALTER TABLE有许多种风格-无论表的大小如何,其中的一些基本上花费零时间。 MyISAM(大多数情况下)采用暴力方式:使用新架构创建一个空表;复制所有数据并建立所有索引;交换表。对于某些更改,InnoDB还必须采用强行方式:更改PRIMARY KEY的示例。