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

使用JDBC在MySQL数据库中如何快速批量插入,第1张

可以使用jdbc预编译+批量更新,这样的执行效率最高。

具体是这样使用的:

循环2000条数据例如数据被装到了一个名叫dataList的List<Map<String,String>>中,那么批量更新就是这样执行的

Map map = null;

String data1= "";

String data2 = "";

String sql = insert into biao values(,);

PreparedStatement preStmt = connprepareStatement(sql);

for(i = 0;i<dataListsize();i++){

map = dataListget(i);

data1=mapget("data1");

data2 = mapget("data2");

preStmtsetString(1,data1);

preStmtsetString(2, data2);

preStmtaddBatch();

}

preStmtexecuteBatch();

preStmtclearBatch();

首先, 插入上万条数据,对于数据库来说并不是“很大”的工作量,一般配置的笔记本电脑都可以在1分钟内完成。 所以最简单、最灵活的办法还是写SQL语句。

如果不希望DB编译器每次执行都编译SQL的话,可以使用存储过程,直接调用,性能上会好很多。也比较简单。

(几万条数据怎么地也得要时间去处理,所以不可能特别快的。)

如果由于各种原因,导致这个插入还是很慢, 而且你的MYSQL又是50以上版本的话,可以使用BulkCopy来进行批量 *** 作。

BulkCopy的原理就是Client直接把一个数组(DataTable)传给DB,然后传入表名,所有的编译、 *** 作都由DB自己完成,效率很高。

引用MySqlDatadll , 调用MysqlBulkCopy函数即可。

这个函数在处理海量数据插入的时候效率尤为明显, 小量数据反而没什么优势,而且由于传入的DataTable格式必须和表的字段一模一样(空的列也要传进去),导致C#要写很多代码来构造这个数组,所以要你自己权衡用还是不用。

我在自己的电脑上批量插入一亿条数据,Insert写法大概需要1小时,BulkCopy大概只需要5分钟。

windows系统,用命令行登入mysql后,使用通配符进行匹配:

source sql

linux或mac,建议你写脚本,或者使用管道

cat asql bsql | mysql -u root -proot test

以上就是关于使用JDBC在MySQL数据库中如何快速批量插入全部的内容,包括:使用JDBC在MySQL数据库中如何快速批量插入、c#中往mysql里批量插入上万条数据,有比较高效的方法吗、请教大神们如何批量地往mysql数据库导入大量的sql文件呢 sqlyog ...等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9448292.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存