모든 내용은 Real MySQL 8.0 1권에서 가져왔습니다!!
8.3.5 다중 컬럼 인덱스
이전 인덱스 정복기에서 살표본 인덱스들은 모두 1개의 column만 포함된 인덱스였다. 하지만 실제 서비스용 데이터베이스에선 2개 이상의 column을 포함하는 인덱스가 더 많이 사용된다. 두 개 이상의 column으로 구성된 인덱스를 다중 컬럼 인덱스(또는 복합 컬럼 인덱스)
라고 하며 2개 이상의 컬럼이 연결됐다고 해서 Concatenated Index
라고도 한다.
아래 그림은 2개 이상의 컬럼을 포함하는 다중 컬럼 인덱스의 구조를 보여준다.
[Real MySQL 그림 8.13]
위 그림에선 편의상 루트 노드는 생략했지만 실제로 루트 노드와 리프 노드는 항상 존재한다. 데이터 레코드 건수가 적은 경우 브랜치 노드가 없는 경우는 있을 수 있다.
인덱스의 두 번째 컬럼은 첫 번째 컬럼에 의존해서 정렬된다. 두 번째 컬럼의 정렬은 첫 번째 컬럼이 똑같은 레코드에서만 의미가 있다.
위의 그림에서 emp_no 값의 정렬 순서가 빠르더라도 dept_no 컬럼의 정렬 순서가 늦다면 인덱스의 뒤쪽에 위치한다.