단계 1
입력 SQL
무엇이 일어나나
문법·권한을 확인하고, 가능하면 쿼리 변환과 바인드 재사용까지 반영해 실행 가능한 형태로 정리합니다.
왜 중요한가
같은 SQL이라도 재사용 여부와 초기 해석 비용이 달라져 이후 계획 선택의 출발점이 달라집니다.
옵티마이저는 현재 통계를 바탕으로 접근 경로와 조인 방식을 고르고, 개발자는 EXPLAIN으로 그 판단이 맞았는지 검증해야 합니다.
문법·권한을 확인하고, 가능하면 쿼리 변환과 바인드 재사용까지 반영해 실행 가능한 형태로 정리합니다.
같은 SQL이라도 재사용 여부와 초기 해석 비용이 달라져 이후 계획 선택의 출발점이 달라집니다.
통계를 읽고 접근 경로, 조인 순서, 조인 방식을 선택해 가장 낮은 비용의 계획을 만듭니다.
실제 성능 차이의 대부분은 여기서 발생합니다. SQL 문법보다 어떤 경로로 읽는지가 더 크게 작용합니다.
cost, rows, actual rows, execution time을 비교해 추정과 실제가 얼마나 맞는지 확인합니다.
차이가 크면 통계가 오래됐거나 선택도 추정이 틀렸을 가능성이 큽니다. 이때 인덱스와 통계를 다시 점검합니다.