1. Data insertion Performance (single insert and BULK INSERT)
[Java]View PlainCopy
- Public class Test {
- private Long ID;
- private String test;
- Public Long getId () {
- return ID;
- }
- public void SetId (Long id) {
- this.id = ID;
- }
- Public String Gettest () {
- return test;
- }
- public void Settest (String test) {
- this.test = test;
- }
- }
Mapper.xml file
[HTML]View PlainCopy
- <? XML version= "1.0" encoding="UTF-8" ?>
- <! DOCTYPE Mapper Public "-//mybatis.org//dtd mapper 3.0//en" "Http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
- <mapper namespace="Com.astrospace.test.mapper.TestMapper" >
- <resultmap id="test" type="Com.astrospace.test.dmo.Test" >
- <ID property= "id" column="id"/>
- <result property="test" column="test" />
- </resultmap>
- <insert id="Add" parametertype="Com.astrospace.test.dmo.Test">
- INSERT into TEST (id,test) VALUES (#{id},#{test});
- </Insert>
- <insert id="Batchadd" parametertype="java.util.List">
- INSERT into TEST (id,test)
- VALUES
- <foreach collection="list" item="item" index="index" separator="," >
- (#{item.id},#{item.test})
- </foreach>
- </Insert>
- </mapper>
Call the Add and Batchadd methods.
Different data volumes were tested 5 times and the results were as follows:
50,000 data per insert Average time: 233748ms
Bulk Insert 50,000 data average time: 2590ms
Contrast: 50 times times less efficient
10,000 data per insert Average time: 22036ms
Bulk INSERT 10,000 data average time: 3330ms
Contrast: 6 times times less efficient
1000 data per insert Average time: 3122ms
BULK INSERT 1000 Data average time: 374ms
Contrast: 8 times times less efficient
The more data, the more efficient it becomes.
MySQL BULK Insert vs. Single Insert efficiency comparison