<aside> 💡
옵티마이저 (Optimizer)
테이블의 통계 정보를 참조해 최적의 쿼리 실행 계획을 수립합니다.
</aside>
옵티마이저의 중요성
옵티마이저가 실행 계획을 만드는 방식을 이해해야 실행 계획을 최적화할 수 있기 때문에 중요합니다.
1 | SQL 파싱 | SQL문을 다루기 쉽게 파싱해 트리 구조로 쪼갭니다. | MySQL 엔진 |
---|---|---|---|
2 | 실행 계획 수립⭐⭐⭐⭐⭐ | 테이블 조회 순서와 이용할 인덱스를 선택하고 성능을 최적화합니다. | MySQL 엔진 |
3 | 쿼리 실행 | 실행 계획에 따라 스토리지 엔진에서 가져온 데이터를 MySQL 엔진에서 조인하고 정렬해 반환합니다. | 스토리지 엔진 |
MySQL 엔진 |
실행 계획 수립 단계에서는
① 불필요한 조건을 제거하고
② 복잡한 연산은 단순화하고
③ 테이블 조인 순서를 정하고
④ 사용할 인덱스를 고르고
⑤ 조회된 결과를 임시 테이블로 재가공할지를 결정합니다.