Mybatis의 첫 번째 수준 캐시는 기본적으로 활성화되어 있으며 SqlSession 수준에 있습니다. 이는 동일한 SqlSession의 여러 쿼리가 이 캐싱 수준을 활용한다는 것을 의미합니다. 첫 번째 수준 캐시는 주로 쿼리 결과를 저장합니다. 쿼리 작업을 실행할 때 MyBatis는 매핑 문과 쿼리 결과 간의 매핑 관계뿐만 아니라 쿼리 결과 데이터도 캐시에 저장합니다. mybatis의 두 번째 수준 캐시는 첫 번째 수준 캐시와 다릅니다. 두 번째 수준 캐시는 각 SqlSession의 첫 번째 수준 캐시와 달리 애플리케이션 전체에서 공유됩니다.
이 튜토리얼의 운영 체제: Windows 10 시스템, DELL G3 컴퓨터.
MyBatis는 맞춤형 SQL, 저장 프로시저 및 고급 매핑을 지원하는 탁월한 지속성 계층 프레임워크입니다. MyBatis에서 캐싱은 데이터 액세스 성능을 향상시키는 데 사용되는 최적화 방법입니다. MyBatis는 2단계 캐시 메커니즘, 즉 1단계 캐시와 2단계 캐시를 제공합니다.
레벨 1 캐시:
레벨 1 캐시는 기본적으로 활성화되며 SqlSession 수준입니다. 이는 동일한 SqlSession의 여러 쿼리가 이 수준의 캐시를 활용한다는 것을 의미합니다. 첫 번째 수준 캐시는 주로 쿼리 결과를 저장합니다. 쿼리 작업을 실행할 때 MyBatis는 매핑 문과 쿼리 결과 간의 매핑 관계뿐만 아니라 쿼리 결과 데이터도 캐시에 저장합니다. 동일한 SQL 문이 다시 실행되면 MyBatis는 먼저 SQL 문의 매핑 관계와 결과 데이터가 첫 번째 수준 캐시에 존재하는지 확인하고, 존재하는 경우 반복 쿼리를 피하고 결과를 캐시에 직접 반환합니다. 데이터베이스.
1단계 캐시의 수명주기는 SqlSession의 수명주기와 동일합니다. SqlSession이 닫히거나 지워지면 첫 번째 수준 캐시도 지워집니다. 첫 번째 수준 캐시는 트랜잭션 내에서 공유됩니다. 즉, 동일한 트랜잭션 내의 여러 작업이 첫 번째 수준 캐시의 데이터를 공유할 수 있습니다. 그러나 서로 다른 트랜잭션의 첫 번째 수준 캐시는 독립적이며 트랜잭션 간에 캐시된 데이터는 서로 영향을 미치지 않습니다.
두 번째 수준 캐시:
첫 번째 수준 캐시와 달리 두 번째 수준 캐시는 애플리케이션 전체에서 공유됩니다. 이는 각 SqlSession에 독립적으로 존재하는 첫 번째 수준 캐시와는 다릅니다. 두 번째 수준 캐시는 여러 SqlSession에서 공유할 수 있으므로 전역 캐시라고도 합니다. 이는 서로 다른 SqlSession이 동일한 SQL 문을 실행하는 경우 데이터베이스를 다시 쿼리하는 대신 두 번째 수준 캐시에서 데이터를 가져올 수 있음을 의미합니다. 이를 통해 데이터 액세스 성능이 더욱 향상되고 데이터베이스 부하가 줄어듭니다.
두 번째 수준 캐시는 매핑 문과 쿼리 결과 간의 매핑 관계가 아닌 SQL 쿼리의 결과 집합을 저장합니다. 즉, 두 번째 수준 캐시는 SQL 문이 아닌 쿼리 결과를 기반으로 합니다. 따라서 두 개의 서로 다른 SQL 문이 동일한 결과 집합을 반환하더라도 두 번째 수준 캐시의 데이터를 공유할 수 없습니다.
2차 캐시를 사용하려면 MyBatis의 전역 구성 파일에서 이를 활성화하고 캐시해야 하는 매핑 파일에서 해당 태그를 구성해야 합니다. 또 한 가지 주목해야 할 점은 2차 캐시가 전체 애플리케이션에서 공유되기 때문에 동시 접속 및 데이터 일관성 문제를 신중하게 처리해야 한다는 것입니다.
요약:
MyBatis의 1단계 캐시와 2단계 캐시는 모두 데이터 액세스 성능을 향상시키도록 설계되었습니다. 첫 번째 수준 캐시는 SqlSession 수준에서 빠른 쿼리 방법을 제공하는 반면, 두 번째 수준 캐시는 전체 응용 프로그램 수준에서 전역 쿼리 방법을 제공합니다. 실제 애플리케이션의 필요에 따라 1차 수준 캐시나 2차 수준 캐시 또는 둘 다를 사용하도록 선택하면 애플리케이션 성능을 효과적으로 향상시킬 수 있습니다.
위 내용은 마이바티스의 1단계 캐시와 2단계 캐시는 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!