提高删除大量数据的删除查询的速度?

时间:2012-01-03 07:52:44

标签: mysql innodb

我有一个删除查询,可以从表中删除大量数据。查询看起来像这样

While loop

DELETE FROM table_name WHERE id=12345;

End loop

此查询获取1000个数据。

循环很大,查询删除的数据也非常庞大。结果,系统变得非常慢。我需要一种方法来优化它。

注意:存储引擎InnoDB

由于

1 个答案:

答案 0 :(得分:0)

此答复基于这样的假设:循环不对缓慢的过程负责。

有几种方法可以加快DELETE - 陈述,有些方法比其他方法更实用。首先,你必须找出什么exaclty减慢DELETE - 查询,例如许多索引,很多数据行,可能是一个慢速硬件 - 或者只是与服务器的连接不良。

一种方法是使用QUICK - 选项,它以不同方式处理索引文件中的删除。请在MySQL-manual中查看详细信息。

另一种方式是:

  1. 复制你的表格,
  2. 删除副本中的数据
  3. 删除原始表格,
  4. 将已处理的副本重命名为以前的文件名。
  5. 您将删除与工作表分开。如果我们在这里讨论的表格有很多流量,或者使用外键等,那么就不应该这样做。