개요
데이터의 위치를 가리키는 자료구조
n개의 컬럼에 대해 정렬하여 키와 레코드 포인터를 저장
장점
모든 행을 검색(full table scan)하지 않으므로 조회 속도 향상
데이터가 정렬되어 있으므로 where, order by, min, max 등의 성능 향상
단점
인덱스 관리를 위한 저장 공간 필요
삽입, 수정, 삭제 시 인덱스 관리를 위한 오버헤드 발생
수정, 삭제 시 인덱스를 삭제하지 않고 사용하지 않음으로 처리하기 때문에 수정, 삭제가 빈번할 경우 오히려 성능 하락 가능성 존재
인덱싱 종류
clustered
레코드의 물리적 순서를 지정
물리적 순서가 지정되므로 Clustered index는 하나만 생성 가능
따로 설정하지 않을 경우 기본키 설정 시 자동으로 생성
테이블 자체가 인덱스 페이지
저장 순서와 순차적 혹은 역순으로 액세스 하는 경우 검색 속도 크게 향샹
non-clustered에 비해 조회는 빠르지만 삽입, 수정, 삭제는 느림
수정이 빈번하지 않거나 범위(MAX, MIN, COUNT 등), group by 등의 조회를 자주하는 경우에 유리
non-clustered
레코드의 논리적 순서를 지정
데이터의 위치를 가리키는 별도의 인덱스 페이지 생성
n개 생성 가능
clustered에 비해 조회는 느리지만 삽입, 수정, 삭제는 빠름
수정이 빈번하거나 조건(where, join) 조회를 자주하는 경우 유리
cluster
멀티 데이터베이스와 멀티 테이블이 조인된 경우 사용
클러스터 키 값을 공유하는 테이블의 레코드를 동일하거나 가까운 데이터 블록에 저장함으로써 I/O 오버헤드를 줄여 조인 성능 향샹
종류
bitmap index
데이터를 비트맵에 저장하여 동작하는 인덱스
데이터가 한정(성별 등)되어 있고 자주 사용되는 경우 유용
dense index
모든 레코드에 대한 키와 포인터 쌍을 가진 파일을 이용하는 인덱스
sparse index
모든 블록에 대한 키와 포인터 쌍을 가진 파일을 이용하는 인덱스
reverse index
키를 뒤집어서 인덱싱
시퀀스 번호인 경우 유용
primary index
테이블의 키 필드와 키가 아닌 필드에 대한 포인터를 포함
테이블이 생성될 때 자동으로 생성
secondary index
hash index
Tags:
bitmap index ,
cluster index ,
clustered index ,
dense index ,
hash index ,
index ,
non-clustered index ,
primary index ,
reverse index ,
secondary index ,
sparse index
Categories:
database
Updated: October 18, 2022