- /**
- * 一条一条插入 测试10万数据用时差距
- */
- @Test
- void testMillionCount2(){
-
- long startTime = System.currentTimeMillis();
-
- for (long i = 0L; i<100000L; i++){
- AixiBuildDamaged dl = new AixiBuildDamaged();
- dl.setReceptionId(i);
- dl.setImg("https://aisce-root.oss-cn-beijing.aliyuncs.com/img/2022/5/14/dzyStorekeeperOSS/49e7a5fa-2566-40e5-92a3-4ec48cf7ba6a.jpg");
- dl.setCreateTime(new Date());
- dl.setDelFlag(1);//默认的 这版本获取不到数据库默认值
- aixiBuildDamagedMapper.insert(dl);
- }
-
- long endTime = System.currentTimeMillis();
- System.out.println(endTime-startTime +" ms");
- }
如果要是有1亿个订单 新增 , 估计一年后才能看到去年的订单
我算了一下, 执行10万的新增
一秒20条左右 预计1.3889小时结束十万数据
计算: 100000/20/60/60 ≈1.3889小时
insertBatchSomeColumn()还有第二种方式 实现: session 等待补充
- /**
- * 测试批量添加十万数据(内存操作)
- */
- @Test
- void testMillionCount() {
-
- long startTime = System.currentTimeMillis();
- //破损图片插入破损表
- List<AixiBuildDamaged> damagedList = new ArrayList<>();
-
- for (long i = 0L; i < 100000L; i++) {
- AixiBuildDamaged dl = new AixiBuildDamaged();
- dl.setReceptionId(i);
- dl.setImg("https://aisce-root.oss-cn-beijing.aliyuncs.com/img/2022/5/14/dzyStorekeeperOSS/49e7a5fa-2566-40e5-92a3-4ec48cf7ba6a.jpg");
- dl.setCreateTime(new Date());
- dl.setDelFlag(1);//默认的 这版本获取不到数据库默认值
- damagedList.add(dl);
- }
-
- if (!aixiBuildDamagedMapper.insertBatchSomeColumn(damagedList))
- throw new ConstructionServiceException("添加破损图片失败, 请重试!!!");
-
- long endTime = System.currentTimeMillis();
-
- System.out.println(endTime - startTime + " ms");

一条一条插入: 一秒20条(略低)左右 预计1.3889小时结束十万数据
一次插入: 总耗时: 42.758秒 ->10万数据