[Review] 한 걸음 나아가는 SQL(인덱스를 생성할 때의 기준) 정리


인덱스를 생성할 때의 기준에 대해 정리한 내용입니다.

인덱스를 생성할 때의 기준

- 사용자에 의해 사용되는 어플리케이션과 SQL과 Query에 인덱스를 생성


- where절에서 빈번하게 사용되는 컬럼에 인덱스를 생성


- 자주 join 되는 테이블 컬럼에 인덱스를 생성


- whwere절에서 함수와, 연산으로 사용되는 컬럼에는 인덱스를 만들지 않는다.


- 외래키와 whwere절에서 빈번하게 사용되는 컬럼에는 nonunique 인덱스를 생성


- 테이블의 크기가 적은 것은 인덱스를 만들지 않는다.


- 인덱스가 많은 경우 오버헤드를 발생시킬 수 있다.


- Select 절의 컬럼을 인덱스 컬럼으로 만들 수 있다(성능 Up)


- 칼럼의 분포도가 (10 ~15 %)이하인 경우 적용. 
  단 분포도가 범위 이상이더라도 부분범위 처리를 목적으로 하는 경우 인덱스 적용 
  (같은 값을 가지는 row가 적은 비율을 가지는 칼럼)