5. 자주 하는 실수 (Tip)
실수 1: 선택도 낮은 컬럼에 단독 인덱스를 만든다
status 같은 컬럼은 값이 몇 개 안 돼서 단독 인덱스의 효과가 적고, 쓰기 비용만 늘어납니다. 자주 함께 쓰는 다른 컬럼과 묶은 복합 인덱스로 만듭니다. 값이 치우친 컬럼에서 아주 드문 값만 자주 찾는다면 예외적으로 단독 인덱스가 유용할 수 있습니다.
실수 2: 복합 인덱스 순서를 조건 순서대로 쓴다
WHERE 절에 적은 순서는 인덱스와 무관합니다. 등호 조건 컬럼을 앞, 범위 조건 컬럼을 뒤에 둡니다. 범위 컬럼을 앞에 두면 그 뒤 컬럼은 좁히는 데 기여하지 못합니다.
실수 3: 쿼리마다 인덱스를 하나씩 만든다
쿼리 30개에 인덱스 30개를 만들면 INSERT 와 UPDATE 가 그만큼 느려집니다. 선두 컬럼이 같은 인덱스는 하나로 합칠 수 있는지 먼저 봅니다. 예를 들어 (emp_id) 와 (emp_id, amt) 가 같이 있으면 앞의 것은 뒤의 것에 포함되므로 보통 지울 수 있습니다.