5. 자주 하는 실수 (Tip)
실수 1: 인덱스만 걸면 무조건 빨라진다고 믿는다
변형 3~5 에서 봤듯, 인덱스가 있어도 컬럼을 가공하거나 자료형이 안 맞으면 그 인덱스는 무용지물입니다. 인덱스를 만든 뒤에는 실제로 쓰이는지 EXPLAIN 으로 꼭 확인하는 습관이 필요합니다.
실수 2: WHERE 절 컬럼에 함수를 습관적으로 씌운다
WHERE UPPER(dept) = '개발' 처럼 컬럼 쪽에 함수를 씌우는 코드는 인덱스를 무력화시킵니다. 데이터를 저장할 때부터 대소문자를 통일해 두거나, 꼭 필요하다면 변형 7 에서 본 함수 기반 인덱스로 대응합니다.
실수 3: 모든 컬럼에 인덱스를 걸어 두면 안전하다고 생각한다
2.5 에서 봤듯 인덱스는 쓰기 성능과 저장 공간을 갉아먹습니다. 조회에 실제로 쓰이지 않거나 선택도가 낮은 컬럼까지 인덱스를 걸어 두면, 조회는 별 이득이 없는데 쓰기만 느려지는 결과를 얻기 쉽습니다.
실수 4: 복합 인덱스의 컬럼 순서를 아무렇게나 정한다
변형 2 처럼 복합 인덱스는 선두 컬럼이 조건에 없으면 못 탑니다. 인덱스를 만들기 전에 이 컬럼이 단독으로도 조건에 자주 오는지, 항상 다른 컬럼과 같이 오는지를 먼저 따져 순서를 정합니다.