목록 보기
토니모리 공식몰 API 응답시간 2차 개선기 (SQL 실행계획 최적화 및 index)
백엔드

토니모리 공식몰 API 응답시간 2차 개선기 (SQL 실행계획 최적화 및 index)

토니모리
토니모리
2024년 11월 29일

두줄요약

토니모리 공식몰 API의 응답 시간을 개선한 사례를 다뤘습니다. COUNT(*)를 EXISTS로 바꾸고 인덱스를 추가해 조회 성능을 높였습니다.

핵심 내용

  • 토니모리 공식몰 API 성능 개선 사례로, SQL 실행계획 최적화와 인덱스 적용을 통해 응답 시간을 줄인 과정
  • 구매 내역 존재 여부 확인 쿼리는 COUNT(*) 대신 EXISTS로 변경해 불필요한 집계와 전체 탐색을 줄임
  • 리뷰 썸네일 조회는 적절한 인덱스 추가와 조인 전 필터링으로 스캔 범위와 연산 비용을 감소시킴
  • 결과적으로 각각 약 20%, 50% 이상 응답 속도 개선을 확보

적용해볼 점

  • 존재 여부 확인에는 COUNT(*)보다 EXISTS 검토
  • 조건 필터가 많은 조회에는 인덱스 설계와 실행계획 확인 필요
  • ROW_NUMBER, 조인, 정렬이 섞인 쿼리는 필터링 순서와 인덱스 활용 여부 점검

다음 읽기

#성능 주제를 다룬 다른 회사 글

10초 타임아웃에서 벗어나기까지의 여정

체험단 활동목록 조회 API의 10초 타임아웃을 대용량 데이터에 맞는 인덱스와 쿼리 분리로 해결했습니다. 조회 구조를 바꿔 p99 지연시간을 20ms 이하로 낮췄습니다.

무신사
무신사
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...