9.1 개요

옵티마이저는 쿼리를 최적으로 실행하기 위한 실행계획을 만들어 낸다.

더 좋은 실행 게획을 만들어 내기 위해 실행계획에 대해 이해하려 해보자.

9.1.1 쿼리의 실행 절차

MySQL서버에서 쿼리는 3단계에 걸쳐 실행된다.

  1. 문장 분석 후 파싱 트리 생성 :: SQL파싱
  2. 최적화 및 실행 계획 수립
  3. 스토리지 엔진으로부터 데이터 요청

사람 몸이랑 아주 유사하구먼

뇌로 판단하고 최적의 방법 생각하고 손/팔한테 시키는 과정이구나.

9.1.2 옵티마이저의 종류

옵티마이저는 두가지 방식으로 최적화를 진행한다.

  1. 비용 기반 최적화 - 최근
    1. 상황에 맞게 실행 계획을 수립하고 최적화된 쿼리를 실행한다.
  2. 규칙 기반 최적화 - 과거
    1. 데이터 통계를 보고 판단하기보다는 정해진 규칙대로 최적화를 진행한다

과거의 느린 CPU문제로 “규칙 기반 최적화” 방식이 사용될 수 있었으나 현재는 대부분 “비용 기반 최적화” 방식을 사용하고 있다고 한다.