在一个查询中有多个更新的Mysql性能

问题描述:

我需要在MySQL表(使用索引)中更新大约100 000条记录,所以此过程可能需要很长时间。我正在寻找更快速的解决方案。在一个查询中有多个更新的Mysql性能

我有三个解决方案,但我没有时间进行速度测试。

解决方案:

  1. 通常UPDATE使用UPDATE语法喜欢这里Update multiple rows with one query?

  2. 在阵列循环每个新记录(糟糕的性能比较) - 找不到任何性能比较导致

  3. 使用LOAD DATA INFILE键值字段相同的值,我猜在这种情况下,它会调用UPDATE,而不是UNSERT - 我想应该工作得更快,当以往

你知道哪个解决方案最好。 其中一个重要标准是执行速度。

谢谢。

+0

您可以在这里找到解决方案.. [链接](http://dev.mysql.com/doc/refman/5.1/en/optimization.html) – kapillohakare

  • LOAD DATA INFILE从文件中提取大量数据的最快方法;
  • 第二种解决方案并不像您想象的那么糟糕。特别是如果你可以像

    更新表执行一些 设置 字段=值 其中(LIST_OF_IDS) ID

  • ,但它会更好,来发表您的更新查询。