대용량 데이터를 조회해야하는 상황이 발생했다.
Pagination 방식에는 여러 종류가 있고, 장단점이 다르다.
상황에 맞지 않는 페이지네이션 방식을 사용시, 예상치 못한 latency 딜레이가 발생할 수 있다.
Pagination의 종류
Limit-Offset 방식
- 가장 기본적인 페이지네이션
- Offset은 skip할 데이터 수, limit은 반환한 데이터 수
- 장점
- 단점
- 데이터가 많을수록 느려짐.
- OFFSET이 클수록, 성능저하가 심함
- ex) 무한스크롤시, 점점 더 데이터 로딩이 느려질 수 있음
- 조회간 데이터 변경시, 중복 혹은 누락문제 발생 가능
Page 번호 방식
- 페이지 번호를 명시하여 특정 페이지의 데이터를 조회
- 장점
- 사용자가 직관적으로 페이지 번호를 입력해 접근
- 단점
- 데이터가 중간에 변경되면 중복 및 누락 발생 가능
- 큰 페이지로 갈수록 성능 저하 발생
<aside>
❗
이름은 다르지만, 결국 쿼리를 비교해보면,
OFFSET = LIMIT * (page-1) 이기 때문에
OFFSET 방식과 같은 방식
</aside>