我想在MySql数据库中插入一些4K的行。我不想触发4k 'insert‘查询。有没有什么方法可以让我只执行一次insert查询来在数据库中存储这4k行。
我在互联网上到处搜索,我发现用户正在从文件批量插入到数据库中。
在我的例子中,数据在内存中,我不想先将数据写到文件中进行批量插入。如果我这样做了,那么我将在程序中添加延迟。
发布于 2011-04-03 20:26:30
您可以编写单个查询,该查询将在对数据库的单个调用中执行多次插入:
insert into your_table (field1, field2, field3)
values
(value1_1, value1_2, value1_3),
(value2_1, value2_2, value2_3),
(value3_1, value3_2, value3_3)在这里,使用我给出的示例,这个查询将在表中插入三行。
发布于 2011-04-03 22:47:06
MySQL的LOAD DATA命令可能对您有用:http://dev.mysql.com/doc/refman/5.5/en/load-data.html
参考Pascal的建议,除非你的命令超过了max_allowed_packet,否则你应该能够执行这个查询。在许多情况下,最好创建一些较小的插入,每个插入有1000行。
发布于 2012-02-08 14:25:36
你可以execute your statements in batch,some code example can be found here。
另外,使用setAutoCommit(false),并在executeBatch()之后调用conn.commit();,以最小化提交次数。
https://stackoverflow.com/questions/5529529
复制相似问题