OFFSET 비용

OFFSET은 원하는 행으로 순간 이동하지 않고, 앞 행을 건너뛴 뒤 가져옵니다.

페이지 번호가 깊어질수록 버릴 행이 많아집니다. 화면에는 10개만 보여도 DB는 그 앞의 많은 행을 확인해야 할 수 있습니다.

SELECT product_id, name, price
FROM products
ORDER BY created_at DESC, product_id DESC
LIMIT 10 OFFSET 990;

1페이지

0 skip
10 take
나머지

10읽고 반환

10페이지

90 skip
10 take
나머지

100앞 90개는 버림

100페이지

990 skip
10 take
나머지

1000깊을수록 부담 증가

장점

특정 페이지 이동이 쉽고 구현이 단순합니다.

한계

깊은 페이지에서는 앞 행을 건너뛰는 비용이 커집니다.

기준

항상 ORDER BY와 고유 보조 키를 함께 둬야 경계가 안정됩니다.