본문 바로가기
Q&A2018년 9월 10일1분 읽기

MySQL LIKE 검색 성능 개선

데
데이터베이스초보
조회 2723댓글 3

게시판 검색 기능에서 LIKE '%검색어%'를 사용하고 있는데, 데이터가 10만 건이 넘어가니 너무 느립니다.

인덱스가 LIKE '%...'에서는 안 먹는다고 하는데, 성능을 개선할 방법이 있나요?

댓글 3

개개발자준호8년 전

앞에 %가 붙으면 인덱스를 사용할 수 없습니다. MySQL 5.7+에서는 FULLTEXT INDEX를 사용하세요. MATCH(column) AGAINST('검색어' IN BOOLEAN MODE) 형태로 검색하면 훨씬 빠릅니다.

데데이터베이스초보(guest)개발자준호8년 전
FULLTEXT INDEX가 한글도 잘 되나요? ngram 파서를 설정해야 한다고 들었는데요.
코코딩하는민수8년 전

MySQL의 한글 전문검색은 ngram parser(ft_min_word_len=2)를 설정해야 합니다. 더 본격적으로 하려면 Elasticsearch 도입을 고려해보세요. 10만 건 정도면 Elasticsearch가 압도적으로 빠릅니다.

Ctrl+Enter로 등록