판단 기준
인덱스 사용 여부는 “어디가 변환되느냐”가 결정합니다.

묵시적 타입 변환 자체보다, 그 변환이 컬럼에 적용되는지 값에만 적용되는지가 더 중요합니다.

인덱스 무시

문자 컬럼을 숫자로 비교하면 컬럼이 변환됩니다

컬럼 쪽에 함수가 걸린 것과 같아져 인덱스를 타지 못하고 전체 스캔으로 흐르기 쉽습니다.

비교식
SELECT * FROM users
WHERE phone = 01012345678;
내부 처리
TO_NUMBER(phone) = 01012345678
결과
컬럼 변환 → Full Scan
인덱스 유지

숫자 컬럼을 문자로 비교하면 값만 변환됩니다

DBMS가 리터럴을 숫자로 바꾸므로 컬럼은 그대로 남고, 기존 인덱스 구조를 계속 사용할 수 있습니다.

비교식
SELECT * FROM orders
WHERE order_id = '12345';
내부 처리
order_id = TO_NUMBER('12345')
결과
값 변환 → 인덱스 사용