제19장: OzExplain - 실행 계획 트리 및 인덱스 추천
안내: 이 장에서는 복잡한
EXPLAIN텍스트 출력을 직관적인 시각적 실행 계획 트리로 변환하고, 통계 불일치를 경고하며 최적의 인덱스를 권장하는 OzExplain 기능을 설명합니다.
이 장의 내용:
19.1 시각적 실행 계획 트리
SELECT 쿼리를 선택하고 Cmd + E를 누르면, OzExplain이 쿼리 실행 계획을 색상 노드 트리로 시각화합니다.
- 빨간색 노드 (병목 구간): 전체 테이블 스캔(Full Table Scan /
ALL), 디스크 임시 테이블(using temporary), 디스크 정렬(filesort) 등 고비용 작업. - 녹색 노드 (최적화 구간): 기본 키 조회(
const,eq_ref) 및 B-Tree 인덱스를 통한 고속 검색.
19.2 예상 행 수 vs 실제 행 수 비교 분석
EXPLAIN ANALYZE(MySQL) 또는 대응하는 ANALYZE(MariaDB)를 지원하는 환경에서는 옵티마이저의 예상 행 수와 실제 실행 행 수를 비교합니다.
차이가 3배를 초과하면 노드에 경고가 표시됩니다:
ANALYZE TABLE orders; -- 실제 처리 행(450,000)이 예상치(1,000)를 450배 초과함
팁: 이 경고는 테이블 통계 정보가 오래되었음을 의미하므로,
ANALYZE TABLE을 실행하여 카탈로그 통계를 갱신하는 것이 좋습니다.
19.3 인덱스 추천
전체 테이블 스캔(ALL)이 감지되면 OzExplain은 추천 인덱스 생성 쿼리를 안내합니다:
CREATE INDEX idx_orders_opt ON orders (<필터 컬럼>);
제시된 인덱스 구조를 실제 워크로드와 비교 검토한 후 안전하게 적용하십시오.