개발

mybatis bulk insert 쿼리

snow-line 2020. 11. 29. 23:46
반응형

mybatis를 사용하다 보면 성능을 위해 bulk insert를 사용할 때가 있다

 

bulk insert 쿼리는 다음과 같다.

<insert id="bulkInsert" keyColumn="id" keyProperty="id" useGeneratedKeys="true"
            parameterType="java.util.HashMap">
        INSERT INTO test_table(name, age, register_date, modify_date)
        VALUES
        <foreach collection="list" item="map" index="index" separator="," open="" close="">
            (#{map.name}, #{map.age}, #{map.register_date}, #{map.modify_date})
        </foreach>
    </insert>

저장할 데이터를 List에 담고 foreach를 사용하여

 

insert문을 만들어 한번에 저장하는 방법이다.

 

한번에 너무 많은 데이터를 저장하려고 하면

 

성능상 문제가 생길 수 있으므로

 

대량으로 insert 할 경우

 

보통 1,000건 정도로 잘라서 저장한다.

반응형