• 커버링 인덱스란?
    • 쿼리를 충족시키는 필요한 모든 데이터를 갖고 있는 인덱스를 말합니다.
    • 즉, 인덱스만으로 쿼리의 Select, Where, Order by, Limit, Group by 등에서 사용되는 모든 컬럼을 커버 할 수 있는 경우
  • 실제로 MySQL 실행계획을 통해서 확인 해보자.
    • Table

      • departments ( PK → dept_no )
      • dept_emp ( PK → emp_no, dept_no )
    • 커버링 인덱스 X

      • 단순 PK 를 통해 조회하는 경우 아래와 같이 Extra 공간에 빈값이 들어간 것을 볼 수 있습니다.

        스크린샷 2023-12-10 오후 5.02.06.png

    • 커버링 인덱스 O

      • 인덱스로 인해서 모든 조건이 가능한 경우 “Using index” 로 나오게 됩니다. 이러한 경우를 커버링 인덱스라 합니다.

        Untitled

    • 이외에 모든 조건을 만족 시 “Using index” 가 사용되지만 일부 Where 과 같은 특정 부분에서만 충족한다면 아래와 같이 충족된 부분의 “Using XXX” 가 나오게 됩니다.

      Untitled