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秒

在这里插入图片描述

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐