[Mybatis] 2차 캐시 설정 방법
MyBatis는 2차 캐시를 사용하여 여러 SqlSession
간에 쿼리 결과를 공유하고 성능을 향상시킬 수 있습니다. 2차 캐시는 어플리케이션 전체에서 공유되는 캐시이며, 동일한 SQL 쿼리에 대한 결과를 저장합니다. 아래에 MyBatis에서 2차 캐시를 설정하는 방법을 제공하겠습니다.
- 2차 캐시 설정:
MyBatis의 2차 캐시를 사용하려면 먼저 SqlSessionFactory
설정에 2차 캐시를 활성화해야 합니다.
<configuration>
<!-- 다른 설정들 -->
<settings>
<!-- 2차 캐시 활성화 -->
<setting name="cacheEnabled" value="true"/>
</settings>
<!-- 매퍼 등록 등 다른 설정들 -->
</configuration>`
- 2차 캐시 유형 선택:
MyBatis는 여러 종류의 2차 캐시를 지원합니다. 대표적으로 org.apache.ibatis.cache.impl.PerpetualCache
(기본값), org.apache.ibatis.cache.impl.SoftCache
, org.apache.ibatis.cache.impl.LruCache
등이 있습니다. 각각의 캐시 유형은 서로 다른 메모리 관리 방식을 가지고 있습니다.
<configuration>
<!-- 다른 설정들 -->
<cache type="org.apache.ibatis.cache.impl.SoftCache"/> <!-- 2차 캐시 유형 설정 -->
<!-- 매퍼 등록 등 다른 설정들 -->
</configuration>`
- 매퍼 레벨에서 2차 캐시 비활성화:
특정 매퍼에서 2차 캐시를 비활성화하려면 매퍼 XML 파일에서 다음과 같이 설정할 수 있습니다.
<mapper namespace="your.package.UserMapper">
<cache-ref namespace="org.apache.ibatis.cache.NullCache"/> <!-- 2차 캐시 비활성화 -->
<!-- 나머지 매퍼 설정 -->
</mapper>`
2차 캐시 설정은 어플리케이션의 전반적인 성능을 좌우할 수 있으므로 신중하게 설정해야 합니다. 이 설정을 사용하면 여러 SqlSession
간에 쿼리 결과를 공유할 수 있어 반복적인 쿼리 호출을 피하고 성능을 향상시킬 수 있습니다.