- B* 트리 : 모두가 사용하고 있는 전통적인 표준 인덱스 유형
- 역전키 인덱스 : 바이트가 역전된 B* 트리 인덱스
- 수정을 무작위로 전체 인덱스 구조에 분산시키기 위하여 사용
- 관리되지 않으면 시퀀스와 같이 값이 단조롭게 증가되어 하나의 블록에만 할당 될수도 있음
- 내림차순 인덱스
- 하나 이상의 필드가 내림차순으로 정렬된 B* 트리 인덱스
- ex) 테이블 T(C1,C2 DESC, C3)에 인덱스를 설정할 수 있는데 인덱스에서 C1과 C3의 값은 오름차순으로, C2는 내림차순으로 정렬
- IOT : 인덱스에 저장된 테이블
- B* 트리 클러스터 인덱스
- 클러스터에 데이터를 저장하기 위하여 생성되어야만 하는 인덱스
- 비트맵 인덱스
- 하나의 인덱스 엔트리가 비트맵을 사용하여 다수의 행을 가리킬 수 있는 인덱스
- 일반적으로 B*트리 인덱스에서는 하나의 인덱스 엔트리가 하나의 행을 가리키지만, 비트맵 인덱스에서는 하나의 인덱스 엔트리가 수백 혹은 그 이상의 행을 가리킬 수 있다
- 함수기반의 인덱스(FBI)
- 복잡한 계산, 내장 또는 사용자 정의 함수에 기반을 둔 인덱스
- 예를 들면, EMP 테이블의 ENAME에 인덱스를 달지 않고 신속하고 대소문자에 무관한 검색을 제공하기 위하여 upper(ENAME)에 인덱스를 달 수 있다
- 도메인 인덱스
- (데이터에 특화된 인덱싱 테크닉에 정통한 사용자가) 직접 구성할 수 있는 인덱스
액세스 경로
- 전체스캔
. 단순히 모든 블록을 순차적으로 읽는 것
. 다중 블록 I/O를 이용하여 수행하는 전체 스캔을 언급
.
- 해시 또는 ROWID에 의해 유도된 액세스
. 오라클의 ROWID는 데이터의 물리적인 주소로서 파일에 관한 행, 블록, 블록의 행에 관한 정보를 갖고 있음
. ROWID는 상대적인 파일 번호와 object_id 같은 다른 정보도 포함.
- 다양한 종류의 인덱스
. B*트리 구조 : B트리 + leaf node 연결하여 binary 검색후 순차검색
. 인덱스 고유 스캔
. 인덱스 범위 스캔
. 인덱스 건너뛰기 스캔
. 인덱스 전체 스캔
.
. 빠른 인덱스 전체 스캔
. 인덱스 조인