DML 성능 저하
데이터베이스 사이즈 증가
데이터베이스 관리 및 운영 비용 상승
두 조건을 전재로 약간의 비효율이 있더라도 목표 성능을 만족하는 수준으로 인덱스를 구성할 수 있어야 한다.
물론 선택에 대한 판단 근거가 있어야만 한다.
인덱스는 항상 정렬 상태를 유지하므로 ORDER BY, GROUP BY를 위한 소트 연산을 생략하여 성능을 개선할 수 있다.
I/O를 최소화하면서 소트 연산을 생략하는 공식
1. '='연산자로 사용한 조건절 컬럼 선정
2. ORDER BY절에 기술한 컬럼 추가
3. '='연산자가 아닌 조건절 컬럼은 데이터 분포를 고려해 추가 여부 결정
ex) 
위 쿼리에 ORDER BY절이 있음에도 소트 연산이 발생하지 않도록 인덱스를 구성하려고 한다.
우선 취급지점ID는 '='연산자이기 때문에 순서에 영향을 주지 않아 인덱스 구성에 포함할 수 있다.
다음으로 ORDER BY절에 포함된 청약일자와 입력자ID를 소트 연산을 생략하기 위해 인덱스 구성에 포함한다.
'='이 아닌 조건절 컬럼들도 순서에 영향을 주지 않도록 ORDER BY컬럼보다 뒤쪽에 추가할 수 있다.
만약 쿼리를 만족하는 데이터가 적으면 인덱스에 추가하여 테이블 랜덤 액세스를 줄이는 것이 좋고, 데이터가 많으면 테이블에서 필터링할 때와 큰 성능차이가 없기 때문에 굳이 인덱스에 추가하지 않아도 된다.
인덱스가 다른 인덱스를 완전히 포함하는 경우에는 포함되는 인덱스를 삭제해도 된다.

이외에도 선두컬럼의 데이터가 적거나, 동일한 인덱스 액세스 조건을 공유하는 경우에는 중복되는 인덱스를 통합할 수도 있다.

