【问题标题】:MySQL drop foreign key too slow?MySQL丢弃外键太慢?
【发布时间】:2012-08-23 01:30:21
【问题描述】:

在具有 215k+(使用 alter table)记录的表上删除外键似乎需要很长时间(17 分钟以上)。有没有可能以某种方式加快这个过程? SQL: ALTER TABLE sales_flat_order_grid DROP FOREIGN KEY FK_SALES_FLAT_ORDER_GRID_STORE;

这是一个需要很长时间的 magento 升级

【问题讨论】:

  • 固态硬盘应该可以,哈哈

标签: mysql database performance key innodb


【解决方案1】:

除非您使用InnoDB Plugin(默认情况下,在 MySQL 5.0 和 5.1 中您不使用),否则删除索引需要重建整个表。

如果您无法升级 MySQL,您应该查看 online-schema-change(涉及将所有数据传输到没有索引的新表)或停止站点,最小化任何 I/O 活动并等待操作完成。

【讨论】:

  • 在MySQL 5.5 documentation 中特别指出:“在 MySQL 5.5 及更高版本中,或在带有 InnoDB 插件的 MySQL 5.1 中,创建和删除二级索引不会复制整个表的内容,因此操作比以前的版本更有效率。”
猜你喜欢
  • 2012-09-21
  • 2016-07-14
  • 1970-01-01
  • 2016-08-09
  • 2018-03-17
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
相关资源
最近更新 更多