1. 인덱스 적용 기준
※ INDEX? ; DB 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. 인덱스는 테이블 내의 1개의 컬럼, 혹은 여러개의 컬럼을 이용하여 생성될 수 있다. |
- 인덱스 분포도가 10 ~ 15% 이내인 경우 아래 수식을 참고한다.
분포도 = (1/(컬럼 값의 종류)) * 100 (단위는 %) |
분포도 = (컬럼 값의 평균 ROW 수) / (테이블의 총 ROW 수) * 100 |
- 분포도가 범위 이상이더라도 부분 처리를 목적으로 하는 경우 적용한다.
- 조회 및 출력 조건으로 사용되는 컬럼인 경우 적용한다.
- 인덱스 자동생성 기본 키와 UNIQUE 키의 제약조건을 사용할 경우 적용한다.
2. 인덱스 컬럼 선정
- 분포도가 좋은 컬럼은 단독적으로 생성한다.
- 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성한다.
- 결합 인덱스는 구성되는 컬럼 순서 선정(사용빈도, 유일성, 정렬 등)에 유의한다.
3. 인덱스 설계 시 고려사항
- 지나치게 많은 인덱스는 오버헤드(OVERHEAD)로 작용한다.
- 인덱스는 추가적인 저장 공간이 필요함을 고려해야 한다.
- 넓은 범위를 인덱스 처리 시 오히려 전체 처리보다 많은 오버헤드를 발생 시킬 수 있음에 유의해야 한다.
- 인덱스와 테이블의 저장 공간을 적절히 분리될 수 있도록 설계해야 한다.
'SQL' 카테고리의 다른 글
< 알고 있으면 유용한 MySQL 단축키 > (0) | 2021.08.02 |
---|---|
DDL, DML, DCL 이란? (0) | 2021.07.06 |
SQL Developer 에서 날짜 형식 시/분/초 까지 나오게 하는 법!!! (0) | 2021.07.01 |