MySQL 快速批量插入

Posted

技术标签:

【中文标题】MySQL 快速批量插入【英文标题】:MySQL Quick Bulk Inserts 【发布时间】:2009-07-08 02:01:31 【问题描述】:

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

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

所以我们需要对这个表进行批量插入,并且需要知道在不严重影响搜索查询性能的情况下最快的方法。

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

我们的应用程序建立在标准 LAMP 堆栈之上。

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

使用 cron 作业将插入推迟到稍后阶段。同时将结果写入文件。 生成一个单独的 php 进程来执行插入操作。

【问题讨论】:

我们使用 mysql 5.0.85 版 【参考方案1】:

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

包括

    使用多个VALUES 列表 利用INSERT DELAYED 功能 “并发插入”

【讨论】:

以上是关于MySQL 快速批量插入的主要内容,如果未能解决你的问题,请参考以下文章

使用JDBC在MySQL数据库中快速批量插入数据

mysql批量插入数据

mysql大批量插入数据的正确做法

当MySQL 大批量插入,如何才能快速过滤掉重复数据?

jdbc批量插入实现大批量数据快速插入

数据库实现批量快速插入大量数据的六种方案