首先是后端循环插入数据库(不推荐)
首先是慢的由于需要插入大量数据库,很慢的方法
插入方式为程序遍历循环逐条插入。在mysql上检测插入一条的速度在0.02s到0.04s之间。
所以逐条插入的速度是0.03*30000条的速度是15分钟左右。
所以逐条插入是没法优化的。然后去查询优化方式。发现用批量插入的方法可以提高很大速度。
将30000条数据的插入速度提升到1-2分钟左右
@Test
public void insertCjmxb() {
Cjmxb cjmxb = new Cjmxb();
cjmxb.setYtm("11111");
cjmxb.setCjjlid(1);
for (int i = 0; i < 1000; i++) {
cjmxbMapper.insertMx(cjmxb);
}
}
执行速度是38s也就是0.038*1000的速度。比较慢了
优化后批量插入数据库(推荐)
批量插入使用了0.0356s 这相当于插入一条数据的速度,所以用批量插入会大大提升数据插入速度,当有较大数据插入操作是用批量插入优化
批量插入的写法:
dao定义层方法
//插入到明细到采集明细表里
Integer insertMx(List<Cjmxb> cjmxbs);
mybatis 的第一种写法sql写法(版本低的比如sqlserver2000就不支持)
<insert id="insertMx" parameterType="java.util.List"