핵심 요약
무신사 커뮤니티개발팀은 1억건대 데이터를 다루는 체험단 조회에서 10초 타임아웃을 커버링 인덱스와 3단계 쿼리 분리로 해결했다.
구현 방법
- 커버링 인덱스: idx_체험단신청_커버(회원번호, 상태, 신청일자 DESC, 당첨여부 DESC, 신청번호 DESC)
- SELECT 최소화 및 1) 신청번호만 조회 2) 기본 정보 3) 당첨자 정보 조회
- 애플리케이션에서 IN으로 데이터 결합
- 버퍼 풀/Sequential I/O 최적화
주요 결과
- p99: 350ms → 20ms 이하; 평균 100ms → 10ms
- 10초 타임아웃 완전 해결
- 데이터 전송량 50KB → 400 bytes(약 99% 감소)



