Skip to content

옵티마이저 ​

옵티마이저(optimizer)는 같은 결과를 내는 여러 실행 방법 중 무엇으로 쿼리를 실행할지 정하는 MySQL의 두뇌다. 통계로 각 방법의 비용을 어림해 가장 싼 계획을 고른다. 사람이 그 선택을 바꿔야 할 때는 힌트(hint)로 개입한다.

학습 순서 ​

  1. 쿼리 실행과 풀 스캔 — 쿼리 실행 절차, 규칙 기반과 비용 기반 옵티마이저, 스캔 방식 (면접 비중: 높음)
  2. 정렬·그룹·임시 테이블 — 파일소트(filesort), GROUP BY·DISTINCT 처리, 내부 임시 테이블(internal temporary table) (면접 비중: 높음)
  3. 조인 최적화 — NL(Nested Loop, 중첩 루프)·BKA(Batched Key Access, 배치 키 접근)·해시 조인(hash join)과 옵티마이저 스위치 (면접 비중: 높음)
  4. 쿼리 힌트 — 인덱스 힌트(index hint)와 옵티마이저 힌트(optimizer hint) (면접 비중: 중간)