[Mybatis] 동시성 수준 설정(Executor Type) 개념과 예제

MyBatis에서는 동시성 수준을 설정하는데에 Executor Type이 사용됩니다. Executor Type은 MyBatis가 SQL을 실행할 때 사용하는 스레드 풀과 동시성 제어 방식을 결정하는 역할을 합니다. MyBatis에서는 기본적으로 Simple, Reuse, Batch 총 3가지의 Executor Type을 제공합니다.

  1. Simple: SQL을 실행할 때마다 새로운 Statement를 생성하고 사용하는 가장 간단한 방식입니다. 매번 Statement를 생성하므로 동일한 SQL이 여러 번 호출될 경우 성능이 저하될 수 있습니다.

  2. Reuse: 이전에 사용한 Statement를 재사용하는 방식입니다. 동일한 SQL이 여러 번 호출될 때 성능이 향상될 수 있습니다.

  3. Batch: 배치 처리를 위해 Statement를 모아서 한 번에 실행하는 방식입니다. 동일한 SQL을 여러 번 실행해야 하는 경우 유용합니다.

예제: 동시성 수준 설정

MyBatis의 동시성 수준은 MyBatis 설정 파일의 <environments> 태그 내에서 <executor> 태그를 통해 설정할 수 있습니다.

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <!-- 데이터베이스 연결 정보 설정 -->
        </dataSource>
        <!-- 동시성 수준 설정 -->
        <executor type="SIMPLE"/>
    </environment>
</environments>` 

위의 예제에서 <executor> 태그 내에 원하는 Executor Type을 설정하여 동시성 수준을 변경할 수 있습니다. 이외에도 REUSEBATCH로 설정할 수 있습니다.

<executor type="REUSE"/>
<!-- 또는 -->
<executor type="BATCH"/>` 

Executor Type은 애플리케이션의 성격과 요구사항에 따라 선택되어야 합니다. 단순한 쿼리의 경우 SIMPLE이나 REUSE가 적절하며, 대량의 데이터 처리가 필요한 경우 BATCH를 사용할 수 있습니다.