我有一个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 ....
我在这里失踪了什么?
答案 0 :(得分:0)
让我回答我自己的问题。阅读,像这样的文章
optimize mySql for faster alter table add column
还有更多,实际上说这是InnoDb表的“问题”,并提出了一些替代方法。
所以我只能断定这是一种正常行为。