TIL

8.8 클러스터링 인덱스

MySQL 서버에서 클러스터링은 테이블 레코드를 비슷한 것(프라이머리 키를 기준)끼리 묶어 저장하는 형태로 구현된다. InnoDB 스토리지 엔진에서만 지원하며 나머지 엔진에서는 지원하지 않는다.

8.8.1 클러스터링 인덱스

클러스터링 키 선정 기준

클러스터링의 기준이 되는 칼럼(주로 프라이머리 키)을 클러스터링 키라고 한다. 프라이머리 키가 없는 경우에 아래의 순서대로 대체 칼럼을 선택한다.

  1. 프라이머리 키가 있으면 기본적으로 프라이머리 키를 클러스터링 키로 선택
  2. NOT NULL 옵션의 유니크 인덱스 중 첫 번째 인덱스를 클러스터링 키로 선택
  3. 자동으로 유니크한 값을 가지도록 증가되는 칼럼을 내부적으로 추가한 후, 클러스터링 키로 선택
    1. 이렇게 자동으로 추가된 클러스터링 키는 사용자에게 노출되지 않으며, 쿼리에 사용할 수도 없다.

8.8.2 세컨더리 인덱스에 미치는 영향

8.8.3 클러스터링 인덱스의 장점과 단점

8.8.4 클러스터링 테이블 사용 시 주의 사항

클러스터링 인덱스 키의 크기

프라이머리 키는 AUTO-INCREMENT보다는 업무적인 칼럼으로 생성(가능한 경우)

프라이머리 키는 반드시 명시할 것

AUTO-INCREMENT 칼럼을 인조 식별자로 사용할 경우