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