1. 인덱스란?

검색연산의 최적화를 위해 키 값과 레코드에 대한 포인터로 구성된 자료 구조

2. 인덱스 특징

  • 성능 향상 : 트랜잭션 성능 향상 목적
  • 독립성 : 데이터 저장 구조와 별도의 인덱스
  • 알고리즘 : 트리, 해시 등의 알고리즘을 적용

3. 인덱스 종류

  • 순서 인덱스 
  • 다단계 인덱스 : 인덱스가 커서 메모리에 저장할 수 없고 디스크에 저장되는 경우 저장 비용 최소화 인덱스
  • 해시 기반 인덱스 : 해시 함수를 통해 레코드 주소를 생성하여 탐색
  • 다중 키 인덱스 : 자주 사용되는 속성들의 집합에 의해 키 값 생성

4. 인덱스 사용시 주의사항

  • 분포도가 좋은 컬럼은 단독적으로 생성하여 활용도 향상
  • 자주 조합되어 사용되는 경우는 결합인덱스 생성
  • 결합 인덱스의 컬럼순서 선정에 주의 
  • 가능한 수정이 빈번하지 않는 컬럼에 인덱스 생성
  • 기본키 및 외부키 (조인의 연결고리가 되는 컬럼)
  • 새로 추가된 인덱스는 기존 엑세스 경로에 영향을 미칠 수 있음
  • 지나치게 많은 인덱스는 오버헤드를 발생
  • 넓은 범위를 인덱스로 처리시 많은 오버헤드 발생 ( 분포도가 10~15% 이내일떄) 
  • 옵티마이져를 위한 통계데이타를 주기적으로 갱신 
  • 인덱스 사용원칙을 준수해야 인덱스가 사용되어짐
  • 조인(join)시에 인덱스가 사용여부에 주의

5. 유용한 문서