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

 更新时间:2023年01月16日 10:57:23   作者:Yang疯狂打码中  
本文主要介绍了详解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批量添加慢内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringMVC+EasyUI实现页面左侧导航菜单功能

    SpringMVC+EasyUI实现页面左侧导航菜单功能

    这篇文章主要介绍了SpringMVC+EasyUI实现页面左侧导航菜单功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 通过Spring AOP实现异常捕捉机制

    通过Spring AOP实现异常捕捉机制

    在开发过程中,异常处理是一个不可忽视的重要环节,合理、优雅地处理异常不仅能提高代码的鲁棒性,还能提升系统的用户体验,本文将介绍如何通过Spring AOP实现一个高效的异常捕捉机制,使得异常处理变得更加优雅和统一,需要的朋友可以参考下
    2024-08-08
  • eclipse+maven+spring mvc项目基本搭建过程

    eclipse+maven+spring mvc项目基本搭建过程

    这篇文章主要介绍了eclipse+maven+spring mvc项目基本搭建过程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • SpringBoot引入SPEL模板字符串替换的两种方式

    SpringBoot引入SPEL模板字符串替换的两种方式

    在 Spring Boot 中,我们可以使用字符串替换工具类来实现这些功能,本文主要介绍了SpringBoot引入SPEL模板字符串替换的两种方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 四种Springboot常见全局时间格式化方式

    四种Springboot常见全局时间格式化方式

    这篇文章主要为大家详细介绍了Springboot实现全局时间格式化的四种常见方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • SpringBoot 如何从配置文件读取值到对象中

    SpringBoot 如何从配置文件读取值到对象中

    这篇文章主要介绍了SpringBoot 如何从配置文件读取值到对象中,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • mybatis之如何获取表中某一列的最大值

    mybatis之如何获取表中某一列的最大值

    这篇文章主要介绍了mybatis之如何获取表中某一列的最大值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • java实现简单的猜数字小游戏

    java实现简单的猜数字小游戏

    这篇文章主要为大家详细介绍了java实现简单猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • Java map为什么不能遍历的同时进行增删操作

    Java map为什么不能遍历的同时进行增删操作

    这篇文章主要介绍了Java map为什么不能遍历的同时进行增删操作,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Java编译和解释执行对比及原理解析

    Java编译和解释执行对比及原理解析

    这篇文章主要介绍了Java编译和解释执行对比及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05

最新评论