offset
개념
n번째 row에서 n개 가져오기
- offset: 어디에서 가져올 것인가
- limit: 가져올 때 몇개를 가져올 것인가
SELECT column1, column2, ...
FROM your_table
ORDER BY column_to_order
LIMIT page_size OFFSET offset_value;
장점
- 간단 명료하게 구현 가능
단점
- 엄청난 양의 row를 건너뛰는 과정에서 속도 저하가 발생할 수 있다.
- 다음 페이지를 요청했지만 결과가 일부 중복으로 노출될 수 있다. 첫번째 페이지에 최신 데이터를 불러왔고 그 이후 데이터가 추가되었더라면, 2번째 페이지에서 첫번째 페이지에서 봤던 값이 보일 수도 있다.
cursor
개념
x 값을 가진 row 기준으로 n개 가져오기
cursor가 되는 column의 값은 항상 unique여야 한다.
SELECT column1, column2, ...
FROM your_table
WHERE cursor_column > previous_cursor_value
ORDER BY cursor_column
LIMIT page_size;
특징
실시간 데이터를 효율적으로 다룰 수 있다.
즉, offset의 단점을 보안해준다. cursor로 기준을 잡게되니, 해당 cursor 기준으로 N개를 가져오기 때문에 중복될 일은 거의 없다. (가져오는 데이터가 순차적으로 쌓인다고 가정할 때)
장점
데이터 양이 많거나 갑작스런 변화가 있더라도 항상 일관된 성능을 제공해준다.
단점
제한된 정렬 기능이다. 정렬할 컬럼에 중복된 값이 존재하면 안되고, 순차적이여야 한다.
'IT' 카테고리의 다른 글
Web - XSS (Cross Site Scripting) (0) | 2023.06.23 |
---|---|
Web - CSRF (Cross Site Request Forgery) (0) | 2023.06.23 |
Lottie란 무엇인가 (0) | 2023.06.15 |
GIT - Rebase (0) | 2023.06.13 |
Headless Component (1) | 2023.05.27 |