오프셋 기반 페이지네이션 vs 커서기반 페이지네이션
2024. 2. 22. 12:26ㆍProject
- 오프셋 기반 페이지네이션 - 페이징 (장단점)
- offset만큼 읽는데 이전의 읽었던 것을 다시 쭉 읽은 후 조회해서 데이터가 많아지면 성능상 안 좋다.
- 데이터 중복 문제: 2페이지 끝까지 읽었는데 앞에 최신 데이터가 들어오면 3페이지 읽을 때 중복이 발생할 수 있다.
- JPA에서는 Pageable을 이용해서 쉽게 구현할 수 있다.
- 커서기반 페이지네이션 - 무한스크롤 (장단점)
- offset을 사용하지 않고 Cursor를 기준으로 다음 n개의 데이터를 응답해주는 방식이다.
- 따라서 cursor가 unique한 값이어야한다.
- 데이터 중복이 발생하지 않고, offset과 다르게 이전의 데이터를 읽지 않고 바로 다음 cursor에 대한 정보를 주면 되므로, 대량의 데이터를 다룰 때 성능상 좋다
- 대신 where절에 여러 조건이 들어가면 성능이 offset보다 안좋다고 한다.
- 참고블로그
'Project' 카테고리의 다른 글
Offset기반의 페이지네이션 성능 개선(feat. Cursor Pagination, Covering Index) (0) | 2024.03.07 |
---|---|
타임라인 구현 방법 2가지 (pull mode, push model) (0) | 2024.02.23 |
Refresh Token을 redis에 저장한 이유? (0) | 2024.01.26 |
QueryDSL을 도입한 이유 (0) | 2024.01.25 |
XSS? (1) | 2024.01.24 |