MySQL快速批量插入

Mat*_*rne 3 php mysql sql performance

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

我们的search_results表是简单的映射searches.idresults.id.

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

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

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

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

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

Jor*_*nes 6

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

包含

  1. 使用多个VALUES列表
  2. 利用该INSERT DELAYED功能
  3. "并发插入"