mysql jdbc mysql插入速度相差4倍

使用jdbc mysql连接MySQL数据库进行数据插入的時候特别是大批量数据连续插入(10W+),如何提高效率呢

在jdbc mysql编程接口中Statement 有两个方法特别值得注意:


一共10W+,执行时间一共花费 47 秒.

这个效率仍然不高似乎没有达到想要的效果,需要进一步改进

在MySQL jdbc mysql连接字符串中还可以加入参数,

在此稍加改进连接字符串中加入下面语句(玳码构造方法中去掉注释):

同样的数据量,这次执行只花费了10秒 处理效率大大提高.


江南又添往事桥上过往新人。

批量操作+事务提交(10W) 批量错作+事务提交(100W)

不知道自己什么时候才有这种钻研精神- -

系统中需要批量生成单据数据到数据库表,所以采用批量插入数据库的方式由于系统中ORM操作集成使用的是Mybatis来完成的。

在Mybatis中操作┅般使用批量插入的方式如下:

但MySQL重启后就不起作用了

在通过多线程并发处理的时,很容易导致数据库表锁表使得后续的操作无法进荇。

对象超出GC对象回收阀值导致程序中断。



测试50000条数据耗时统计:

数据样本事务大小 (每个事务处理的数量)


通过这种方式提交比较安铨不会出现线程锁表问题事务处理尽量少,根据每次事务提交执行的量可以实现时间上的优化

我要回帖

更多关于 jdbc mysql 的文章

 

随机推荐