MySQL(Percona 5.7)使用InnoDB引擎缓慢ALTER表...?

时间:2017-07-05 09:32:24

标签: mysql performance innodb alter percona

我有一个InnoDB引擎中的表,非常简单,有25000行。当我做一个简单的ALTER时,它运行了将近10分钟:

mysql> ALTER TABLE `quote_followups_istvan` 
       ADD `customer_ip2` VARCHAR(20) NOT NULL DEFAULT '' AFTER `comment`;

查询OK,0行受影响(10分52.82秒) 记录:0重复:0警告:0

但是当我将它的引擎更改为MyISAM时,我明白了:

mysql> alter table quote_followups_istvan engine="MyISAM";

查询OK,受影响的25053行(0.56秒) 记录:25053重复:0警告:0

mysql> ALTER TABLE `quote_followups_istvan` 
       ADD `customer_ip3` VARCHAR(20) NOT NULL DEFAULT '' AFTER `comment`;

查询OK,受影响的25053行(0.37秒) 记录:25053重复:0警告:0

所以10分钟vs 0.37s ....

我在这里失踪了什么?

1 个答案:

答案 0 :(得分:0)

让我回答我自己的问题。阅读,像这样的文章

optimize mySql for faster alter table add column

还有更多,实际上说这是InnoDb表的“问题”,并提出了一些替代方法。

所以我只能断定这是一种正常行为。