- 참조: https://developer111.tistory.com/75
- 클러스터 인덱스와 논클러스터 인덱스 특징
-
InnoDB스토리지 엔진의 경우만 해당
-
클러스터 인덱스
- 테이블당 한개만 생성가능
- PK를 설정한 경우 기본으로 클러스터 인덱스 생성
- 인덱스 자체에 data가 저장
- 실제 물리적인 정렬순서와 인덱스의 정렬순서가 같음
- PK로 생성된 클러스터 인덱스가 반드시 1개의 컬럼이 아닐 수 있음
- 보틍은 PK를 1개만 생성하지만 여러개를 PK로 지정 가능
- PK생성할 때 클러스터 인덱스가 만들어 지므로, 여러개 생성되다고 생각할 수 있음
- 하지만 여러개 컬럼을 PK로 지정한 경우 각 컬럼이 독립적으로 작동하지 않고 한쌍의 PK로 동작
-
논클러스터 인덱스
- 테이블에 인덱스를 생성하는 경우 생성되는 인덱스
- 하나의 테이블에 여러개의 논클러스터 인덱스 생성 가능
- 인덱스 자체에 data가 저장되지 않고 data의 주소를 가짐
- 실제 물리적인 정렬순서와 인덱스의 정렬 순서는 다름
- 클러스터 인덱스와 논클러스터 인덱스의 비교
- 쉽게 비교하자고 하면 클러스터 인덱스는 사전의 인덱스, 논클러스터 인덱스는 일반 책의 인덱스
- 클러스터 인덱스는 조회는 빠르게 가능
- 하지만, 실제 데이터를 모두 가지고 있기 때문에 용량적으로는 무거움
- 클러스터 인덱스는 PK기준으로 정렬되고 논클러스터 인덱스의 경우 인덱스를 활용하는 쿼리를 작성한 경우 해당 인덱스 정렬 기준에 따라 정렬되어 조회됨