1. 인덱스(Index)
- 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
- 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다.
- 인덱스를 통해서 파일의 레코드에 빠르게 액세스 할 수 있다.
- 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적이다.
2. 인덱스(Index)의 종류
종류 | 내용 |
트리 기반 인덱스 | 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것 |
비트맵 인덱스 | 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법 |
함수 기반 인덱스 | 컬럼의 값 대신 컬럼에 특정 함수(Function)나 수식(Expression)을 적용하여 산출된 값을 사용하는 것 |
비트맵 조인 인덱스 | 다수의 조인된 객체로 구성된 인덱스 |
도메인 인덱스 | 개발자가 필요한 인덱스를 직접 만들어 사용하는 것 |
3. 클러스터드/넌클러스터드 인덱스
종류 | 내용 |
클러스터드 인덱스(Clustered Index) | – 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식 – 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있음 |
넌클러스터드 인덱스(Non-Clustered Index) | – 인덱스의 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식 – 데이터 삽입, 삭제 발생 시 순서 유지를 위한 데이터 재정렬이 필요 없어 속도가 빠름 |