BAD: 22.338ms, read=1252
CONCAT으로 LIKE 패턴 생성
SELECT m.mbr_id
,m.nick_nm
FROM startdbpg.ms_mbr_big m
WHERE m.nick_nm LIKE CONCAT('Air10','%')
;
SQL
복사
실행계획 보기
•
CONCAT('Air10','%')은 결과가 접두어 패턴이어도 계획 시점에 상수로 단순화되지 않을 수 있어, 일반적인 B-tree 인덱스의 LIKE 접두어 범위 검색으로 최적화하기 어렵습니다.
GOOD: 0.109ms, hit=15
문자열 연결 연산자로 LIKE 패턴 생성
SELECT m.mbr_id
,m.nick_nm
FROM startdbpg.ms_mbr_big m
WHERE m.nick_nm LIKE 'Air10' || '%'
;
SQL
복사
실행계획 보기
•
문자열 상수는 'Air10' || '%'처럼 연결하거나, 이미 정해진 패턴이라면 'Air10%'로 작성합니다. 상수 패턴으로 인식되면 인덱스 범위 검색에 유리합니다.
TIP
•
PostgreSQL의 CONCAT() 반환형은 text이며, bpchar로 바뀌어서 발생하는 문제로 일반화할 수 없습니다. 실제 인덱스 선택은 컬럼 자료형·Collation·인덱스 연산자 클래스와 실행계획을 확인해야 합니다.



