首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql通过一次插入操作插入多行

问Mysql通过一次插入操作插入多行
EN

Stack Overflow用户
提问于 2016-04-21 03:50:10
回答 1查看 62关注 0票数 0

我有一个客户端Java7应用程序,它必须向数据库中插入大量的小数据(几列)。数据库(Mysql 5.6)位于我的服务器上。客户端Java应用程序在循环中调用存储过程以插入单行。行很简单,看起来像这样:

int | int | varchar | varchar | int | datetime

现在我这样做是这样的(伪代码):

代码语言:javascript
复制
try(DbConnection conn = new DbConnection()) {
for(RowModel model : rowModel) {
//inserting row here
}
}
catch(SqlException e) {
//process exception...
}

如您所见,我打开连接一次,然后逐行插入。"rowModel“可能有上千行,对我来说,向mysql存储过程发送1个" longtext”看起来更合理,它会以某种方式将该长文本限定为适合单个"insert“调用。

这是可能的吗?如何实现?你有什么建议?

所以,基本上,总结一下: 1)调用一个有很多值的"insert“而不是客户端的"for-each”有什么好处吗? 2)我如何编写我的存储过程,让它接受1个大文本并使用单个"INSERT“命令插入它?

EN

回答 1

Stack Overflow用户

发布于 2016-06-10 14:26:57

在具有很多值的insert上调用会带来相关的性能优势。您只需执行一次命令,而不是像必须插入多少行这样的许多命令。

通常情况下,批量插入,所以也被称为这种技术,减少了许多时间的过程的持续时间。

例如:在一些经验测试中,在插入循环中插入1000,执行时间是1分钟。使用批量插入时,时间结果为2秒

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

https://stackoverflow.com/questions/36753804

复制
相关文章

相似问题

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