MySQL快速批量插入

时间:2009-07-08 02:01:32

标签: php sql mysql performance

我们正在为客户开发“搜索报告”功能。其中一个要求是,他们可以查看特定结果,并查看哪些搜索字词会导致它。

我们的search_results表只是searches.idresults.id的映射。

因此,我们需要在此表中进行批量插入,并且需要知道最快的方法,而不会严重影响搜索查询的性能。

搜索报告不是经常需要的,因此表格可能是> 90%插入。此外,不需要立即插入,因此可以推迟存储。

我们的应用程序基于标准的LAMP堆栈。

我们愿意接受有关存储此数据的其他方法的建议。我们研究过的其他一些想法是:

  • 使用cron作业将插入延迟到后续阶段。在此期间将结果写入文件。
  • 生成一个单独的PHP进程来执行插入。

1 个答案:

答案 0 :(得分:6)

以下是关于如何加快MySQL 5.1的INSERT速度的一个很好的概述:http://dev.mysql.com/doc/refman/5.1/en/insert-speed.html

包括

  1. 使用多个VALUES列表
  2. 利用INSERT DELAYED功能
  3. “并发插入内容”