Search

[권장:성능]CONCAT 함수로 생성한 LIKE 패턴

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·인덱스 연산자 클래스와 실행계획을 확인해야 합니다.
💡

KEY POINT