前言
最近发现好几个项目都有批量插入数据库的功能,而且每个项目的批量插入的写法都有一些不同,所以本文打算对Mysql批量插入做一个详细的分析。
准备
1.jdk1.7,mysql5.6.38
2.准备库和表
测试和分析
以下是几种分析优缺点的插入方法:
1.语句插入方法
日志如下:
详细日志:
再次运行并观察日志:
再次运行,插入10000条数据只需要100ms左右,观察日志:
设置最大允许数据包:
这种方法可以很好地进行批量数据插入,但是如果数据量较大,一次执行所有数据的批量插入,容易造成客户端内存溢出,所以也可以使用第三种方法;
3.成批准备报表
一些代码如下:
然后分别以第二种方式和第三种方式插入10w条数据。第二种方式直接溢出内存,第三种方式可以完全插入数据。当然批量插入肯定比一次性插入慢,所以可以在内存和速度之间做一个简单的权衡。
总结
在本文中,我们以三种方式插入数据,以了解Mysql批处理插入的过程,useLocalSessionState和rewriteBatchedStatements参数对性能的影响,以及maxAllowedPacket对数据包大小的限制。最后建议在内存和速度之间做一个取舍。
1.《mysql批量insert数据 Mysql批量插入分析》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《mysql批量insert数据 Mysql批量插入分析》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1217486.html