我有一张 InnoDB 引擎中的表,非常简单,有 25000 行。当我执行一个简单的 ALTER 操作时,它会运行近 10 分钟:
mysql> ALTER TABLE `quote_followups_istvan`
ADD `customer_ip2` VARCHAR(20) NOT NULL DEFAULT '' AFTER `comment`;
查询正常,0 行受影响(10 分 52.82 秒) 记录:0 重复:0 警告:0
但是当我将其引擎更改为 MyISAM 时,我得到了:
mysql> alter table quote_followups_istvan engine="MyISAM";
查询正常,25053 行受影响(0.56 秒) 记录:25053 重复:0 警告:0
mysql> ALTER TABLE `quote_followups_istvan`
ADD `customer_ip3` VARCHAR(20) NOT NULL DEFAULT '' AFTER `comment`;
查询正常,25053 行受影响(0.37 秒) 记录:25053 重复:0 警告:0
所以 10 分钟 vs 0.37 秒......
我在这里缺少什么?
最佳答案
让我回答我自己的问题。继续阅读类似这样的文章
optimize mySql for faster alter table add column
还有更多,实际上说这是 InnoDb 表的“问题”,并提出了一些替代方法。
所以我只能得出结论,这是正常行为。
关于MySQL (Percona 5.7) 使用 InnoDB 引擎的 ALTER 表速度慢...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44922326/