LIKE 연산자와 인덱스 사용 여부
WHERE 업체명 LIKE '%대한%'
- 와일드카드 
%가 앞에 위치하면 문자열의 시작 위치가 불확실하여,
인덱스를 사용 불가능(Range Scan 불가능)❌ 
- 일반적으로 
Table Full Scan이 수행된다. 
WHERE 업체명 LIKE '대한%'
- 와일드카드가 뒤에만 위치한 경우, 문자열의 시작이 고정되므로
B-Tree 인덱스를 활용한 Range Scan이 가능 
그런데 LIKE 연산자에서도 사용 가능한 인덱스가 있다 ..? 👀
LIKE '%KEYWORD%' 같은 접두어가 없는 패턴 검색은
B-Tree 인덱스로는 인덱스 사용이 불가능하지만,
전문 검색(FULL TEXT SEARCH) 기술을 도입하면 인덱스를 통한 효율적인 검색이 가능하다.
1. InnoDB Full Text Index
%KEYWORD% 처럼 중간 또는 끝에 있는 단어 검색 가능 
MATCH(column) AGAINST('keyword' IN BOOLEAN MODE) 형식으로 사용 
- 내부적으로 역색인(Inverted Index)을 활용하므로, 중간 검색도 빠름
 
✅ FULL TEXT INDEX의 역색인 구조는 일반 인덱스의 B-Tree 구조와 다름!
2. n-gram parser
- 한글처럼 공백 없는 언어 지원을 위해 도입
 
- FULL TEXT INDEX에 
WITH PARSER ngram 설정 필요 
- 한글 포함 문자열에서도 '%KEYWORD%' 검색 최적화 가능
 
3. ElasticSearch - 외부 전문 검색 엔진
- 외부에 데이터를 연동해서 사용하는 방식.
 
LIKE '%keyword%'가 아닌, match나 wildcard 등 다양한 검색 쿼리 제공 
- 중간 단어, 복합 키워드, 형태소 분석까지 고도화 가능.
 
- 대규모 검색 시스템에 적합 (쇼핑몰 검색, 리뷰 검색 등)
 
FULL TEXT INDEX를 활용한 개발 경험 사례 공유
FULL TEXT INDEX을 사용한 개발 및 학습 일지
FULL TEXT INDEX를 도입한 개발 PR