从120s到3s!MyBatis批量插入数据优化分享,那叫一个优雅! |
您所在的位置:网站首页 › 批量导入1000万条数据怎么导入的 › 从120s到3s!MyBatis批量插入数据优化分享,那叫一个优雅! |
概述
最近在压测一批接口,发现接口处理速度慢的有点超出预期,感觉很奇怪,后面定位发现是数据库批量保存这块很慢。 这个项目用的是 mybatis-plus,批量保存直接用的是 mybatis-plus 提供的 saveBatch。 我点进去看了下源码,感觉有点不太对劲: 我继续追踪了下,从这个代码来看,确实是 for 循环一条一条执行了 sqlSession.insert,下面的 consumer 执行的就是上面的 sqlSession.insert: 然后累计一定数量后,一批 flush。 从这点来看,这个 saveBach 的性能肯定比直接一条一条 insert 快。 我直接进行一个粗略的实验,简单创建了一张表来对比一波! 粗略的实验1000条数据,一条一条插入 @Test void MybatisPlusSaveOne() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { StopWatch stopWatch = new StopWatch(); stopWatch.start("mybatis plus save one"); for (int i = 0; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |