MySQL에서 SQL 문 실행은 구문 분석, 준비, 최적화 및 실행의 네 단계로 나뉩니다. 실행 플랜 캐시 기능은 prepare statement에만 사용할 수 있습니다. 이 기능이 활성화되면 prepare statement를 execute할 때 처음 세 단계를 건너뛰어 쿼리 성능이 크게 향상됩니다.
MySQL 8.0 20210830에서 실행 플랜 캐시는 고유 키(UK) 또는 기본 키(PK)를 사용하는 쿼리에만 적용됩니다. 이후 버전에서 더 많은 유형의 쿼리를 다룰 것입니다.
커널 버전 MySQL 8.0 20210830 이상
이 기능은 주로 TencentDB 인스턴스에서 UK 또는 PK로 짧은 prepare statement를 실행할 때 쿼리 성능을 향상시키는 데 사용됩니다. 그러나 성능이 향상될 수 있는 정도는 비즈니스에 따라 다릅니다.
cdb_plan_cache 매개변수를 사용하여 실행 플랜 캐시를 활성화 또는 비활성화하고 cdb_plan_cache_stats 매개변수를 사용하여 캐시 히트에 대한 정보를 쿼리할 수 있습니다. tencentroot 권한이 있는 계정만 두 매개변수를 사용할 수 있습니다.
매개변수 이름 | 즉시 효력 발생 | 유형 | 기본값 | 유효한 값/값 범위 | 설명 |
---|---|---|---|---|---|
cdb_plan_cache | yes | bool | false | true/false | 기능을 활성화할지 여부입니다. 기능 권한이 있는 계정만 매개변수를 사용할 수 있습니다. |
설명:현재 위 매개변수의 값을 직접 수정할 수 없습니다. 필요한 경우 티켓 제출하여 도움을 받으십시오.
show cdb_plan_cache
명령을 실행하여 실행 플랜 캐시 히트에 대한 정보를 쿼리할 수 있습니다. 이 명령은 다음 필드를 반환합니다.
필드 이름 | 설명 |
---|---|
sql | 이 문의 실행 계획이 캐시되었음을 나타내는 물음표(?)가 있는 SQL 문입니다. |
mode | SQL 캐시 모드. 현재 prepare 모드만 지원됩니다. |
hit | 이 세션의 히트 수 |
cdb_plan_cache_stats가 활성화되면 캐시 히트 정보가 기록되어 데이터베이스 성능에 영향을 미칩니다.
show profile을 실행하여 SQL 문 실행의 각 단계에서 상태를 표시할 수 있습니다. 그러나 실행 계획 캐시에 히트되면 optimizing, statistics, preparing 상태는 생략됩니다.
문제 해결에 도움이 되었나요?