본문 바로가기
SQL

인덱스(INDEX) 설계

by 주성씨 2021. 7. 7.

1. 인덱스 적용 기준

INDEX? ; DB 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. 인덱스는 테이블 내의 1개의 컬럼, 혹은 여러개의 컬럼을 이용하여 생성될 수 있다.

- 인덱스 분포도가 10 ~ 15% 이내인 경우 아래 수식을 참고한다.

분포도 = (1/(컬럼 값의 종류)) * 100 (단위는 %)
분포도 = (컬럼 값의 평균 ROW 수) / (테이블의 총 ROW 수) * 100

- 분포도가 범위 이상이더라도 부분 처리를 목적으로 하는 경우 적용한다.
- 조회 및 출력 조건으로 사용되는 컬럼인 경우 적용한다.
- 인덱스 자동생성 기본 키와 UNIQUE 키의 제약조건을 사용할 경우 적용한다.

2. 인덱스 컬럼 선정

- 분포도가 좋은 컬럼은 단독적으로 생성한다.
- 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성한다.
- 결합 인덱스는 구성되는 컬럼 순서 선정(사용빈도, 유일성, 정렬 등)에 유의한다.

3. 인덱스 설계 시 고려사항

- 지나치게 많은 인덱스는 오버헤드(OVERHEAD)로 작용한다.
- 인덱스는 추가적인 저장 공간이 필요함을 고려해야 한다.
- 넓은 범위를 인덱스 처리 시 오히려 전체 처리보다 많은 오버헤드를 발생 시킬 수 있음에 유의해야 한다.
- 인덱스와 테이블의 저장 공간을 적절히 분리될 수 있도록 설계해야 한다.