본문 바로가기
MYSQL

MYSQL - like 문자열컬럼 fulltext

by 하니__ 2024. 5. 20.

 

 

 

제목에 story가 들어간 리스트를 찾는다면

아래와 같이 like를 사용하여 찾게 된다

select m.title,
	count(r.userId) 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%'
group by m.title
limit 0,25;

 

 

이렇게 찾아 낼 수 있겠다

 

그런데 만약 데이터의 갯수가 엄청나게 많아진다면

 

데이터처리 속도가 매우 느리게 된다

 

그럴때 사용하는 것이 

 

full text

 

해당 테이블의 인덱스로 들어가서

 

 

 

이렇게 타입을 풀텍스트로 설정한뒤에

 

해당 컬럼을 선택해주면 된다

 

 

 

 

만약 summary 컬럼도 같이 검색하고 싶다면

 

select m.title,
	count(r.userId) 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.title
limit 0,25;

 

검색기능을 사용할 거라면

설정 해두는것이 이로우면 이롭지, 손해는 없으니

 

검색기능을 사용하게 될 컬럼이라면 설정 해 두자

'MYSQL' 카테고리의 다른 글

MYSQL - DB 데이터 파일로 저장하기  (0) 2024.05.27
MYSQL - db 전용 마스터계정  (0) 2024.05.20
MYSQL - 이중 조건 처리  (0) 2024.05.17
MYSQL - 테이블 생성 - Unique  (0) 2024.05.17
MYSQL - 다중테이블  (0) 2024.05.16