forked from boostcampwm-2024/web05-Denamu
-
Notifications
You must be signed in to change notification settings - Fork 0
[개발 위키] db match against 쿼리
kimhji edited this page Feb 3, 2025
·
1 revision
위와 같은 더미데이터를 100만개 추가한 상황에서, 아래 쿼리 사용 시 데이터 100만개가 모두 조회되는 문제 발생
SELECT COUNT(DISTINCT `feed`.`id`) AS `cnt`
FROM `feed`
INNER JOIN `rss_accept` ON `rss_accept`.`id` = `feed`.`blog_id`
WHERE MATCH(`feed`.`title`) AGAINST ('Title 3' IN NATURAL LANGUAGE MODE);
- 풀 텍스트 인덱스 미적용
SHOW INDEXES FROM feed WHERE Column_name = 'title';
적용이 되어 있음을 확인
-
빈 문자열 또는 NULL 값이 포함된 데이터
title에 null 이나 빈 문자열을 포함하는 더미데이터가 없음.
-
NATURAL LANGUAGE MODE는 관련 데이터를 모두 불러옴?
자연어 검색은 검색 문자열을 단어 단위(token_size)로 분리한 후, 해당 단어 중 하나라도 포함되는 행을 찾음.
→
title 3
을 검색하여도,title
이 포함된 데이터와3
이 포함된 데이터를 찾기 때문에Dummy Feed Title %d
형태의 모든 더미데이터들이 탐색에 걸림
⇒ NATURAL LANGUAGE MODE 로 관련 데이터를 탐색할 시, 하나의 단어라도 포함된 경우가 모두 해당되기 때문에 더미데이터가 모두 탐색된 것.
프로젝트 문서
트러블슈팅
프로젝트 문서
- 검색 쿼리 속도 개선
- 검색 쿼리 pagination cursor 방식 명세
- 검색 쿼리 pagination cursor 방식 적용을 통한 속도 개선
- ai 홍보용 요약 기능 구현
- feed 홍보용 요약 명세
트러블슈팅
프로젝트 문서
트러블슈팅
프로젝트 문서
트러블슈팅
프로젝트 문서
- TanStack Query로 복잡한 서버 상태 관리하기
- useCallback으로 불필요한 렌더링 제거하기
- Zustand persist로 상태 데이터 쟁여두기
- UseQueryOptions에 관하여
- 커서 페이지네이션으로 책갈피 펴듯 데이터 탐색하기
- Google Analytics로 사용자 행동 추적하기
트러블슈팅