✅ OFFSET은 페이지가 커질수록 느려진다
페이지 정보

영삼이
본문
✅ OFFSET
은 페이지가 커질수록 느려진다
무조건 OFFSET으로 페이지네이션 하면 성능 저하가 발생한다
❌ 기본적인 페이지네이션
SELECT * FROM posts
ORDER BY created_at DESC
LIMIT 10 OFFSET 1000;
-
OFFSET이 클수록 앞의 1000개 row를 스캔하고 버림
-
실제로 보여주는 건 10개지만 뒤에 있는 데이터에 도달하려면 시간이 오래 걸림
✅ ID 기반 또는 커서 방식으로 대체
SELECT * FROM posts
WHERE id < 5000
ORDER BY id DESC
LIMIT 10;
-
이전 페이지의 마지막 ID를 기준으로 이어 받음
-
스캔 범위 최소화 → 빠른 응답 유지
추가 팁
-
OFFSET
은 초기 테스트엔 빠르지만,
실제 서비스에선 페이지가 쌓일수록 병목 발생 -
keyset pagination
또는seek 방식
이라고도 함
✔️ 대용량 테이블에서 페이지네이션이 필요하다면
OFFSET을 버리고 기준 ID를 기준으로 커서 방식으로 바꿔라.
응답 속도와 스케일이 달라진다.
- 이전글✅ 인덱스는 조건 순서에 따라 무용지물이 될 수 있다 25.03.28
- 다음글UNION ALL이 UNION보다 빠르다 25.03.28
댓글목록
등록된 댓글이 없습니다.