mysql中的批量操作比逐条操作性能高多少
逐条插入
逐条插入10万条数据到本地mysql数据库(mac本、16G)耗时184474 ms
@Test
public void testCreate() {
long initId = 3000L;
long start = System.currentTimeMillis();
System.out.println("开始时间:"+ start);
for (int i = 0; i < 100000; i++) {
long id = initId + i;
Org org = new Org();
org.setId(id);
org.setOrgName("this is org:" + id);
org.setShowFlag(EnumShowFlag.SHOW);
org.setCreator(-1L);
org.setCreateTime(new Date());
org.setUpdator(-1L);
org.setUpdateTime(new Date());
org.setDelFlag(false);
orgMapper.create(org);
}
System.out.println("插入时间:"+ (System.currentTimeMillis()-start));
}
批量插入
批量插入10万条数据到本地mysql数据库(mac本、16G)耗时16096 ms
@Test
public void testCreateBatch() {
long start = System.currentTimeMillis();
int totalPage = PageUtil.totalPage(100000, 20);
for (int i = 0; i < totalPage; i++) {
int begin = i * 20 + 3000;
int end = (i + 1) * 20 + 2999;
List<Org> list = new ArrayList(20);
for (long j = begin; j <= end; j++) {
Org org = new Org();
org.setId(j);
org.setOrgName("this is org:" + j);
org.setShowFlag(EnumShowFlag.SHOW);
org.setCreator(-1L);
org.setCreateTime(new Date());
org.setUpdator(-1L);
org.setUpdateTime(new Date());
org.setDelFlag(false);
list.add(org);
}
orgMapper.createBatch(list);
}
System.out.println("插入时间:"+ (System.currentTimeMillis()-start));
}
逐条更新
逐条更新10万条数据到本地mysql数据库(mac本、16G)耗时180437ms
@Test
public void testUpdate() {
long start = System.currentTimeMillis();
for (long i = 3000; i < 103000; i++) {
Org org = new Org();
org.setId(i);
org.setOrgName("this is org-1:" + i);
orgMapper.updateBySelective(org);
}
System.out.println("修改时间:"+ (System.currentTimeMillis()-start));
}
批量更新
批量更新10万条数据到本地mysql数据库(mac本、16G)耗时29997 ms
@Test
public void testUpdateBatch() {
long start = System.currentTimeMillis();
int totalPage = PageUtil.totalPage(100000, 20);
for (int i = 0; i < totalPage; i++) {
int begin = i * 20 + 3000;
int end = (i + 1) * 20 + 2999;
List<Org> list = new ArrayList(20);
for (long j = begin; j < end; j++) {
Org org = new Org();
org.setId(j);
org.setOrgName("this is org-2:" + j);
list.add(org);
}
orgMapper.updateBatchBySelective(list);
}
System.out.println("修改时间:"+ (System.currentTimeMillis()-start));
}
分类:
mysql
【推荐】FlashTable:表单开发界的极速跑车,让你的开发效率一路狂飙
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 于是转身独立开发者
· C#.Net筑基-泛型T & 协变逆变
· dotnet 代码调试方法
· DbContext是如何识别出实体集合的
· 一次 .NET 性能优化之旅:将 GC 压力降低 99%
· 我救了一个网站,性能提升了1500 多倍!
· 免费开源 .NET OpenCV 迷你运行时全平台发布
· 经验贴!万字总结网卡丢包及ping延迟等网络问题排查思路
· 用好索引的10条军规
· 一个static关键字引发的线上故障:深度剖析静态变量与配置热更新的陷阱