8.9.2.3 Midpoint 삽입 전략
기본적으로 키 캐시 관리 시스템은 삭제되는 키 캐시 블럭의 선택에 간단한 LRU 전략을 사용하고 있지만, 미드 포인트 삽입 전략이라는 더 진보 된 방법도 지원하고 있습니다.
미드 포인트 삽입 전략을 사용하면 LRU 체인 핫 하위 목록과 따뜻한 하위 목록의 두 부분으로 분할됩니다. 두 부분 사이의 분할 점은 영구적이지 않지만, 키 캐시 관리 시스템은 웜 부분이 "짧아 너무"않고 항상 키 캐시 블록의 적어도 key_cache_division_limit
%를 포함하도록 배려되어 있습니다. key_cache_division_limit
구조화 키 캐시 변수의 구성 요소이기 때문에 그 값은 캐시마다 설정 가능한 매개 변수입니다.
인덱스 블록이 테이블에서 키 캐시에로드되면 그것은 웜 서브리스트의 말미에 놓여집니다. 특정 수의 히트 (블록 액세스) 후 그것은 핫 하위 목록으로 승격됩니다. 현재 블록을 올리는 데 필요한 조회수 (3) 모든 인덱스 블록에서 동일합니다.
핫 하위 목록으로 승격되는 블록은리스트의 말미에 놓여집니다. 블록이 하위 목록에서 순환됩니다. 블록이 충분한 시간 하위 목록의 맨 위에 머물러 있다면, 그것은 따뜻한 하위 목록으로 강등됩니다. 이 시간은 키 캐시의 key_cache_age_threshold
구성 요소의 값에 의해 결정됩니다.
임계 값은 N
블록을 포함하는 키 캐시의 경우, 마지막
히트에 액세스되지 않는 핫 하위 목록의 첫 번째 블록이 웜 하위 목록의 맨 위로 이동되는 것을 규정하고 있습니다. 대체 블록은 항상 따뜻한 하위 목록의 상위부터 검색되기 때문에 나중에, 그것은 제거의 첫 번째 대상이됩니다. N
* key_cache_age_threshold / 100
미드 포인트 삽입 전략으로 가치가 높은 블록을 항상 캐시에 저장할 수 있습니다. 간단한 LRU 전략을 사용하고 싶은 경우는 key_cache_division_limit
값을 그 기본 100으로 설정 한 채로합니다.
미드 포인트 삽입 전략은 인덱스 스캔을 요구하는 쿼리의 실행에서 가치가 높은 수준 B 트리 노드에 해당하는 모든 인덱스 블록을 캐시에서 효율적으로 밀어 때의 성능 향상에 도움이됩니다. 이 문제를 해결하려면 key_cache_division_limit
을 100보다 훨씬 작은 값으로 설정하여 미드 포인트 삽입 전략을 사용해야합니다. 이렇게하면 인덱스 스캔 작업 중에도 가치 자주 당한다 노드가 핫 하위 목록에 유지됩니다.