首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql大容量插入

MySql大容量插入
EN

Stack Overflow用户
提问于 2011-04-03 20:19:14
回答 5查看 22K关注 0票数 10

我想在MySql数据库中插入一些4K的行。我不想触发4k 'insert‘查询。有没有什么方法可以让我只执行一次insert查询来在数据库中存储这4k行。

我在互联网上到处搜索,我发现用户正在从文件批量插入到数据库中。

在我的例子中,数据在内存中,我不想先将数据写到文件中进行批量插入。如果我这样做了,那么我将在程序中添加延迟。

EN

回答 5

Stack Overflow用户

发布于 2011-04-03 20:26:30

您可以编写单个查询,该查询将在对数据库的单个调用中执行多次插入:

代码语言:javascript
复制
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)

在这里,使用我给出的示例,这个查询将在表中插入三行。

票数 16
EN

Stack Overflow用户

发布于 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行。

票数 8
EN

Stack Overflow用户

发布于 2012-02-08 14:25:36

你可以execute your statements in batchsome code example can be found here

另外,使用setAutoCommit(false),并在executeBatch()之后调用conn.commit();,以最小化提交次数。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5529529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档