피드로 돌아가기
Dev.toDatabase
원문 읽기
MySQL Full-Text Search를 통한 Full-Table Scan 및 LIKE 검색 병목 해결
Full-Text Search Functions
AI 요약
Context
방대한 텍스트 데이터 검색 시 발생하는 LIKE '%keyword%' 쿼리의 Full-Table Scan으로 인한 성능 저하 해결 필요. 정밀한 검색 제어와 데이터 연관성 기반의 결과 도출을 위한 인덱싱 전략 수립 요구.
Technical Solution
- FULLTEXT INDEX 도입을 통한 B-Tree 인덱스 한계 극복 및 검색 속도 최적화
- NATURAL LANGUAGE MODE 적용으로 Relevance Score 기반의 자동 결과 정렬 구조 설계
- BOOLEAN MODE의 연산자(+/-) 및 Wildcard(*) 활용을 통한 정교한 필터링 로직 구현
- WITH QUERY EXPANSION 방식을 통한 1차 검색 결과 기반의 키워드 자동 확장 및 의미론적 검색 범위 확대
- Stopwords 설정을 통한 불필요한 공통 단어 인덱싱 제외로 인덱스 크기 최적화 및 검색 효율 증대
- innodb_ft_min_token_size 등 Tokenization 파라미터 튜닝을 통한 검색 정밀도 제어
실천 포인트
1. 대량 텍스트 검색 시 LIKE '%keyword%' 대신 FULLTEXT INDEX 적용 검토
2. 단순 검색을 넘어 연관성 기반 정렬이 필요할 경우 NATURAL LANGUAGE MODE 채택
3. 사용자 정의 검색 연산자가 필요한 경우 BOOLEAN MODE 적용 및 연산자 설계
4. 검색어 부족으로 인한 낮은 재현율 해결을 위해 QUERY EXPANSION 기법 검토
5. 검색 대상 데이터의 최소/최대 단어 길이에 따른 Token Size 설정값 최적화