广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解MyBatis-Puls中saveBatch批量添加慢的问题
  • 273
分享到

详解MyBatis-Puls中saveBatch批量添加慢的问题

MyBatis-Puls saveBatch批量添加慢MyBatis-Puls saveBatch 添加慢 2023-01-16 12:01:40 273人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录问题原因测试优化问题 在项目过程中使用mybatis-Puls的saveBatch一次性添加大量数据时很慢 原因 MyBatis-Puls的saveBatch默认并没有批量添加,

问题

项目过程中使用mybatis-Puls的saveBatch一次性添加大量数据时很慢

原因

MyBatis-Puls的saveBatch默认并没有批量添加,实际上在插入的时候仍然是一条条记录的插,速度远不如原来Mybatis的foreach拼接sql的方法

测试

模拟使用saveBatch添加一万条数据

结果

结果可以看到输出的总耗时为5685,而上面的SQL日志可以证明数据是一条一条插入的 

优化

只需要在JDBC连接URL字符串中需要新增一个参数:rewriteBatchedStatements=true

这样可以让saveBatch实现批处理方式

重新执行后效果:最终耗时2948,几乎快了一半

关于rewriteBatchedStatements这个参数介绍:

Mysql的JDBC连接的url中要加rewriteBatchedStatements参数,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。
mysql JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。
只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL
另外这个选项对INSERT/UPDATE/DELETE都有效

 到此这篇关于详解MyBatis-Puls中saveBatch批量添加慢的问题的文章就介绍到这了,更多相关MyBatis-Puls saveBatch批量添加慢内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解MyBatis-Puls中saveBatch批量添加慢的问题

本文链接: https://www.lsjlt.com/news/177886.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作