WHERE 성능
인덱스는 컬럼이 그대로 보일 때 잘 탄다
함수, 연산, 타입 불일치, 넓은 OR 조건은 일반 인덱스 효율을 떨어뜨릴 수 있다.
핵심 질문 조건 컬럼을 변형하지 않았는가 값 타입과 복합 인덱스 순서가 맞는가
피해야 할 형태 WHERE YEAR(order_date) = 2024 WHERE price * 1.1 > 50000 WHERE phone = 01012345678
인덱스 친화 형태 WHERE order_date >= '2024-01-01' AND order_date < '2025-01-01' WHERE price > 50000 / 1.1 WHERE phone = '01012345678'
문제 원인 대안
컬럼 함수 인덱스 키와 비교식 모양이 달라짐 범위 조건으로 풀거나 표현식 인덱스 검토
암시적 변환 문자와 숫자 타입이 섞여 변환 발생 리터럴 타입과 컬럼 타입을 맞춤
다른 컬럼 OR 하나의 인덱스 경로로 좁히기 어려움 UNION 분리와 실행 계획 비교
조건 형태컬럼이 비교식에서 변형되지 않는가
선택도결과 행이 충분히 줄어드는가
복합 순서선행 컬럼부터 조건에 참여하는가
계획 확인실제 스캔 방식과 추정 행 수를 본다