有没有一种方法可以在MySQL中执行ALTER TABLE,告诉服务器首先跳过创建表的备份?我已经有该表的备份,并且正在对其进行一些测试(添加索引),因此我不在乎该表在此过程中是否损坏。我只是从备份中还原它。但是我关心的是ALTER TABLE快速完成,因此我可以看到测试结果。
考虑到我有一个很大的MyISAM表(700 GB),所以真的不能选择等待几个小时,这样MySQL可以先完成创建原始表的备份,然后再向其实际添加索引。
答案 0 :(得分:1)
它没有做备份;它正在构建新版本。 (如果发生崩溃,现有表将用作备份。)
在InnoDB中,ALTER TABLE
有许多种风格-无论表的大小如何,其中的一些基本上花费零时间。 MyISAM(大多数情况下)采用暴力方式:使用新架构创建一个空表;复制所有数据并建立所有索引;交换表。对于某些更改,InnoDB还必须采用强行方式:更改PRIMARY KEY
的示例。