
[트러블 슈팅] ⚠️ 게시글 검색 및 페이지네이션 슬로우 쿼리
·
프로젝트 트러블 슈팅 및 몰랐던점 정리/CommunityAPI
자유 게시판 프로젝트 진행 중 검색 기능을 구현한 뒤였다. 해당 프로젝트에는 더미데이터 약 2000천만건이 들어가 있었고, 게시글 첫 페이지 조회 시에만 해도 5초 이상이 걸리며 만약 맨 마지막 페이지의 컨텐츠를 확인하기 위해서 limit 20에 offset 20000000을 주게 될 경우 타임아웃이 발생하는 에러를 마주하게 되었다.... 이는 MySQL의 물리 디스크에 접근하여 데이터를 찾는데 그만큼 오래 걸린다는 것인데 이를 해결하기 위해서는 인덱스 생성이 필요해 보였다.문제 원인 파악원인을 파악하기 위해서 EXPLAIN 명령어로 해당 쿼리를 분석.확인 결과 type이 ALL인 것을 확인했다. 이는 쿼리가 인덱스를 사용하지 않고 풀 테입블 스캔을 하고 있음을 의미한다.게다가 총 1987만건의 데이터에..