피드로 돌아가기
Full-Text Search Functions
Dev.toDev.to
Database

MySQL Full-Text Search를 통한 Full-Table Scan 및 LIKE 검색 병목 해결

Full-Text Search Functions

Hoàng Mạnh Khiêm2026년 5월 18일5intermediate

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 설정값 최적화

원문 읽기