Java 3种批量插入更新操作的效率横向比较
来源:互联网 发布:java技术要学多久 编辑:程序博客网 时间:2024/06/06 20:12
以前总是说批量插入和更新的效率比非批量的要高,但是到底高多少,没有评估过,今天我就具体的测试下
(1)三种插入操作的方法
1.1 利用for循环的批量插入
示例xml
- 1
- 2
- 3
- 1
- 2
- 3
示例代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
1.2 采用jdbc
示例代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
1.3 采用mybatis的批量插入方法
其实也是根据一个list 拼接成一个sql
示例xml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
示例代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
数据量分别是10,100,300,1000,5000条数据
数量级别:10
批量插入耗时:141
非批量插入耗时:93
jdbc批量插入耗时:195
数量级别:100
批量插入耗时:164
非批量插入耗时:970
jdbc批量插入耗时:718
数量级别:300
批量插入耗时:355
非批量插入耗时:3030
jdbc批量插入耗时:1997
数量级别:500
批量插入耗时:258
非批量插入耗时:5355
jdbc批量插入耗时:2974
数量级别:1000
批量插入耗时:422
非批量插入耗时:8787
jdbc批量插入耗时:6440
数量级别:5000
批量插入耗时:870
非批量插入耗时:43498
jdbc批量插入耗时:30368
总体看来,效率排序
mybatis批量插入 > jdbc批量插入 > 循环调用insert语句
(2)三种批量更新的方法
2.1 利用for循环批量更新
示例xml
- 1
- 2
- 3
- 1
- 2
- 3
示例代码
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
2.2 jdbc 批量更新
示例代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
2.3 mybatis 批量更新
其实是利用了MySQL的批量更新的语法
case when的语法
详见 【case when 语法】
示例xml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
示例代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
数据量分别是10,100,300,1000,5000条数据
数据量:10
批量更新耗时:279
非批量更新耗时:1522
jdbc批量更新耗时:255
数据量:100
批量更新耗时:720
非批量更新耗时:3391
jdbc批量更新耗时:1912
数据量:300
批量更新耗时:987
非批量更新耗时:9827
jdbc批量更新耗时:7616
数据量:500
批量更新耗时:1649
非批量更新耗时:16253
jdbc批量更新耗时:10475
数据量:1000
批量更新耗时:2552
非批量更新耗时:33048
jdbc批量更新耗时:20793
数据量:5000
批量更新耗时:19066
非批量更新耗时:239127
jdbc批量更新耗时:103273
综上分析,效率排比如下
mybatis批量更新 > jdbc批量更新 > 循环调用update语句
转载出处:http://blog.csdn.net/chenpy/article/details/53912752
- Java 3种批量插入更新操作的效率横向比较
- Java 3种批量插入更新操作的效率横向比较
- mysql 批量插入与单条插入 的效率比较
- sql 批量操作(存在的更新,不存在的插入)
- Java批量插入、更新数据
- python封装一个效率极高的 批量更新、插入合一的工具
- MyBatis-spring和spring JDBC批量插入Mysql的效率比较
- MyBatis-spring和spring JDBC批量插入Mysql的效率比较
- MyBatis-spring和spring JDBC批量插入Mysql的效率比较
- MyBatis-spring和spring JDBC批量插入Mysql的效率比较
- MyBatis-spring和spring JDBC批量插入Mysql的效率比较
- spring springmvc mybatis 整合批量操作,批量更新,批量插入
- ibatis 的批量插入 批量更新数据
- mysql 批量插入和批量更新的
- Spring JdbcTemplate 批量插入或更新操作
- Spring JdbcTemplate 批量插入或更新操作
- Spring JdbcTemplate 批量插入或更新操作
- JdbcTemplate 进行批量插入或更新操作
- iOS组件化实践方案-LDBusMediator炼就
- 【Tools】【构建】Gradle
- git学习笔记 -- day02 管理文件版本
- C# 替换Word文档中的图片
- 解决cmd中,javac提示:javac不是内部或外部命令,但是运行java、java-version正常的问题
- Java 3种批量插入更新操作的效率横向比较
- Android常用控件四之日期控件
- “云计算”简要介绍
- 通用工具类(Map转Json)
- php中的输出语句的区别与功能
- 2016东北赛 && hdu 5927 Auxiliary Set [dfs序+BIT]【数据结构】
- 【JavaSE学习笔记】变量
- 3d切割轮播图
- 【React Native开发】- TextInput键盘输入文本