1.controller代码
    @RequestMapping("/testInsert")
    public String testInsert(Integer sum){
        testService.testInsert(sum);
        return "发送成功";
    }
 
2.service代码
 @Override
    public void testInsert(Integer sum) {
        long start = System.currentTimeMillis();
        List<TestDTO> list = new ArrayList<>();
        for (int i = 0; i < sum; i++) {
            TestDTO testDTO = new TestDTO();
            testDTO.setId(i);
            testDTO.setAgentId(2L*i);
            list.add(testDTO);
            if (i % 300 == 0){
                testMapper.testInsert(list);
                list.clear();
            }
        }
        if (ToolUtil.isNotEmpty(list)){
            testMapper.testInsert(list);
        }
        long end = System.currentTimeMillis();
        System.out.println("时间:"+(end - start)/1000);
    }
 
3.mapper代码
void testInsert(@Param("list") List<TestDTO> list);
 
4.xml代码
<insert id="testInsert">
    INSERT INTO tb_agent_test
        (id, agent_id)
    VALUES
    <foreach collection="list" item="testDTO" separator=",">
        (#{testDTO.id},#{testDTO.agentId})
    </foreach>
    </insert>
 
5.输出结果
 测试数据十万条
 
 每次100条,插入时间总共消耗95秒
 
 每次200条,插入时间总共消耗51秒
 
 每次300条,插入时间总共消耗35秒
 
 每次400条,插入时间总共消耗27秒

 每次500条,插入时间总共消耗23秒
 
每次600条,插入时间总共消耗18秒

每次700条,插入时间总共消耗17秒

每次800条,插入时间总共消耗14秒

每次900条,插入时间总共消耗14秒

每次1000条,插入时间总共消耗12秒

每次1100条,插入时间总共消耗12秒

每次1200条,插入时间总共消耗11秒
 
每次1300条,插入时间总共消耗10秒
 
每次1400条,插入时间总共消耗10秒
 
每次1500条,插入时间总共消耗9秒
 
每次2000条,插入时间总共消耗7秒

每次3000条,插入时间总共消耗7秒




















