클러스터형 인덱스
- 데이터 베이스에 저장된 테이블에서 특정 행 데이터를 빠르게 검색하기 위해 사용한다.
- B-Tree 자료구조를 이용하여 기준이 되는 컬럼값을 정렬하여 사용한다.
- 페이지를 단위로 노드가 만들어지며 각 노드는 기준값으로 정렬된 행 데이터로 구성된다.
- 전체 자료구조는 루트 페이지에서 부터 리프 페이지로 나뉘며 계층 구조를 가지는 트리 형태이다.
- 각 페이지에 행 데이터가 직접 저장된다.
클러스터형 인덱스의 특징
- 트리 자료구조로 인덱스를 기준으로 검색이 매우 빠르다.
- MYSQL에서 PRIMARY KEY로 설정된 컬럼은 자동으로 인덱스가 생성되며 기본적으로 인덱스 컬럼을 기준으로 정렬된 테이블이 출력된다.
- 삽입, 삭제시 B-Tree 자료구조의 특성 때문에 페이지 병합과 분할이 일어난다.
- 테이블당 하나만 설정 가능하다.
보조 인덱스
- 클러스터형 인덱스를 보조하여 사용하는 인덱스로 마찬가지로 빠른 검색을 목적으로한다.
- 클러스터형과 비슷하게 루트/리프 페이지로 구성되어 있지만 내부 행 데이터가 정렬되어 있지는 않다.
- 리프 페이지에 직접 데이터가 저장되지 않고 Heap 영역에 저장된 데이터 페이지를 가리키는 페이지 번호와 주소 오프셋 정보가 담긴다.
보조 인덱스의 특징
- 정렬이 되어 있지 않고 데이터 페이지를 한번 더 참조해야하므로 클러스터형 보다 자료 검색이 느리다.
- 삽입시 리프 페이지에 추가된 데이터 페이지를 가리키는 정보를 뒤에 삽입하면 되므로 빠르다. 추가적인 분할이 없다.
- 보조 인덱스는 여러개 생성할 수 있으며 UNIQUE로 설정할 수 있다.
'DB > 이론' 카테고리의 다른 글
RDBMS vs NoSQL (0) | 2022.05.02 |
---|---|
무결성 제약 조건 (0) | 2022.05.02 |
트랜잭션 고립 수준에 따른 부정합 문제 (0) | 2022.05.01 |
내부 조인과 외부 조인 (0) | 2022.04.30 |
테이블 정규화 (0) | 2022.04.29 |