MySQL ‐ NoOffset For Query Tuning - dnwls16071/Backend_Summary GitHub Wiki

📚 NoOffset

  • No Offset은 페이지 번호(offset)가 없는 더보기 방식을 말한다.
SELECT *
FROM items
WHERE 조건문
ORDER BY id DESC
OFFSET 페이지번호
LIMIT 페이지사이즈
  • 예를 들어, offset이 10,000이고 limit이 20이면 최종적으로 10,020개의 행을 읽어야 한다.(10,000번부터 20개를 읽어야 함)
  • 실제 필요한건 마지막의 20개 뿐인데 그 20개를 읽고자 앞의 10,000개 행을 읽고 버려야 한다.
  • No Offset 방식은 조회 시작 부분을 인덱스로 빠르게 찾아 매번 첫 페이지만 읽도록 하는 방식이다.
SELECT *
FROM items
WHERE 조건문
AND id < 마지막조회ID # 직전 조회 결과의 마지막 id
ORDER BY id DESC
LIMIT 페이지사이즈