MySQL

MySQL) 검색할 문자열 찾는 속도 단축하기 (FULLTEXT 설정)

567Rabbit 2024. 5. 20. 13:26

 

 

아래는 영화제목을 검색하여, 영화 목록(리스트)을 가져오는 SQL문이다.

 

select m.id, m.title, count(r.id) as review_cnt, ifnull(avg(r.rating) , 0) as avg_rating
from movie m
left join review r
on m.id = r.movieId
where title like '%story%' or summary like '%story%'
group by m.id
limit 0, 25;

 

 

title like %(유저가 단어를 입력)%
그런데 유저가 입력한 단어가 있는 행을 검색하는 것은 속도가 느려서

속도를 빠르게 해주려면 아래와 같이 설정해야 한다.

 

 

 

컬럼 설정에서 index에 index name을 자유롭게 지정하고, Type을 FULLTEXT로 하고,

 

 

 

 

 

인덱스 컬럼에서 컬럼을 선택해주면 된다.

 

(검색 키워드가 들어가는 컬럼을 지정하면 된다. 컬럼 갯수는 1개,2개,3개... 등 상관 없다.)

 

사진에서는 위에서  where title like '%story%' or summary like '%story%' 으로 하였으므로

 

title과 summary를 체크한 것이다.