mybatisPlus 的批量执行方法慢的问题?

最近在做一个业务碰到使用mybatisPlus的saveBatch()方法插入500条记录竟然需要20s,后续查看原因发现如下:
mybatisplus 框架的 批量操作方法(saveBatch/saveOrUpdateBatch/updateBatchById等)在执行的时候默认并没有批量添加,实际上在插入的时候仍然是一条条记录的插,使用的是批量执行器进行批量提交,但在sql层面还是执行的多条sql,以saveBatch方法为例,saveBatch()方法也是一条一条的插入,也就是说它会产生多条insert语句,而不是一条insert语句,所以它不是真正的批量插入,更不能提高插入效率。。最终带来的结果就是如果数据量比较大的情况下使用mybatisplus批量操作方法非常耗时,建议手写xml文件进行批量插入

WechatIMG110.jpg

那么如何让mybatisplus的批量方法开启批量插入(一条sql插入多条)?

在[jdbc]的url连接参数中添加 rewriteBatchedStatements=true
MyBatis Plus配置:需确保使用MySQL 5.1.13以上版本的驱动,并在数据源配置中启用该参数。

mybatis xml手动写批量sql的话,必须保持写法是一条sql执行多个记录才不需要加这个参数,否则若批量操作是多条sql拼接依然也需要添加这个参数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容