1. 인덱스란?
검색연산의 최적화를 위해 키 값과 레코드에 대한 포인터로 구성된 자료 구조
2. 인덱스 특징
- 성능 향상 : 트랜잭션 성능 향상 목적
- 독립성 : 데이터 저장 구조와 별도의 인덱스
- 알고리즘 : 트리, 해시 등의 알고리즘을 적용
3. 인덱스 종류
- 순서 인덱스
- 다단계 인덱스 : 인덱스가 커서 메모리에 저장할 수 없고 디스크에 저장되는 경우 저장 비용 최소화 인덱스
- 해시 기반 인덱스 : 해시 함수를 통해 레코드 주소를 생성하여 탐색
- 다중 키 인덱스 : 자주 사용되는 속성들의 집합에 의해 키 값 생성
4. 인덱스 사용시 주의사항
- 분포도가 좋은 컬럼은 단독적으로 생성하여 활용도 향상
- 자주 조합되어 사용되는 경우는 결합인덱스 생성
- 결합 인덱스의 컬럼순서 선정에 주의
- 가능한 수정이 빈번하지 않는 컬럼에 인덱스 생성
- 기본키 및 외부키 (조인의 연결고리가 되는 컬럼)
- 새로 추가된 인덱스는 기존 엑세스 경로에 영향을 미칠 수 있음
- 지나치게 많은 인덱스는 오버헤드를 발생
- 넓은 범위를 인덱스로 처리시 많은 오버헤드 발생 ( 분포도가 10~15% 이내일떄)
- 옵티마이져를 위한 통계데이타를 주기적으로 갱신
- 인덱스 사용원칙을 준수해야 인덱스가 사용되어짐
- 조인(join)시에 인덱스가 사용여부에 주의