게시판 검색 기능에서 LIKE '%검색어%'를 사용하고 있는데, 데이터가 10만 건이 넘어가니 너무 느립니다.인덱스가 LIKE '%...'에서는 안 먹는다고 하는데, 성능을 개선할 방법이 있나요?
댓글 3
앞에 %가 붙으면 인덱스를 사용할 수 없습니다. MySQL 5.7+에서는 FULLTEXT INDEX를 사용하세요. MATCH(column) AGAINST('검색어' IN BOOLEAN MODE) 형태로 검색하면 훨씬 빠릅니다.
MySQL의 한글 전문검색은 ngram parser(ft_min_word_len=2)를 설정해야 합니다. 더 본격적으로 하려면 Elasticsearch 도입을 고려해보세요. 10만 건 정도면 Elasticsearch가 압도적으로 빠릅니다.