基于MybatisPlus批量高效插入百万条数据

本文探讨了JAVA程序中如何通过逐条插入与批处理插入优化数据库数据插入性能,重点介绍了MybatisPlus的批量插入方式以及MySQL的rewriteBatchedStatements参数对性能提升的影响,为大规模数据插入提供优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

在JAVA程序开发中,对数据库进行大量数据插入是一个常见的操作,作为一个软件开发工程师,大批量的数据处理是日常工作,如何优化插入性能,提升数据处理效率是对大多数工程师的一个重要考验。本文将围绕逐条插入和批处理插入两种方式,结合MybatisPlus的实例,以及配置MySQL的连接参数来提升批处理插入的效率。

逐条插入的低效性能

首先,我们通过一个简单的测试展示了10万条数据逐条插入的执行情况,效率不要太低了。代码中使用了IService中的逐条插入功能,通过循环逐个插入10万条数据。结果表明,这种方式的性能较差,执行时间较长,如下图所示,每条语句,都会单独发送数据库执行,网络开销很大,执行效率很差,测试时,10万条数据的插入操作,用时120878ms,大约2分钟时间。
在这里插入图片描述

使用批量插入

接下来,我们引入MybatisPlus的批处理插入方式,通过saveBatch方法实现。测试结果显示,通过批处理插入,性能提升了约10倍,测试时用时测试时用时18500ms,即18秒, 比单条单条插入用时2分多种几乎快了10倍。

在这里插入图片描述
深入源码发现,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老D不是传说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值