DB 실행계획 차이: 원인 및 해결책
·
📊DB/MariaDB
🚨 문제 상황 소개개발 DB와 운영 DB, 같은 버전/같은 테이블/같은 쿼리인데 실행계획이 달라졌다.한쪽은 인덱스를 타고, 다른 한쪽은 풀스캔 + filesort 발생원인 추적 과정 간단히 설명 (EXPLAIN 결과 비교)🧱 실행계획 차이 원인옵티마이저는 비용 기반(cost-based) 으로 플랜을 선택.이때 “선택도(selectivity)” 추정이 중요.그런데 추정 방식이 통계값만 보느냐, 실제 인덱스를 내려가 보느냐에 따라 결과가 달라짐.⚠️ 인덱스 다이브(Index Dive)란?개념: 옵티마이저가 실제 인덱스 레벨에서 값 분포를 확인해 정확한 선택도를 계산하는 과정.장점: 더 정확한 실행계획.단점: 옵티마이저가 실행계획 계산에 시간이 조금 더 걸림.⚙️ EQ_RANGE_INDEX_DIVE_LIM..