MySQL删除外键太慢?

6
使用ALTER TABLE命令对拥有215k+(使用alter table)记录的表删除外键似乎需要很长时间(17+分钟)。是否可能以某种方式加快该过程? SQL: ALTER TABLE sales_flat_order_grid DROP FOREIGN KEY FK_SALES_FLAT_ORDER_GRID_STORE; 这是一个需要很长时间的Magento升级。

5
固态硬盘应该可以搞定,哈哈。 - wesside
1个回答

3
除非您使用了InnoDB Plugin(默认情况下,MySQL 5.0和5.1版本不支持),否则删除索引需要重建整个表。
如果无法升级MySQL,则应考虑使用在线模式更改(涉及将所有数据传输到没有索引的新表)或停止站点,最小化任何I / O活动并等待操作完成。

1
具体来说,在MySQL 5.5文档中指出:"在MySQL 5.5及更高版本,或者在安装了InnoDB插件的MySQL 5.1中,创建和删除二级索引不会复制整个表的内容,使得此操作比之前的版本更加高效。" - Hendrik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接