Problem
Offset pagination (LIMIT/OFFSET) gets slower with each page, skips/duplicates on concurrent writes. Cursor pagination is consistent and fast.
Also known as: cursor-pagination, offset-pagination, keyset-pagination
Return large result sets in pages efficiently, avoiding performance cliffs and consistency issues.
Offset pagination (LIMIT/OFFSET) gets slower with each page, skips/duplicates on concurrent writes. Cursor pagination is consistent and fast.
None — query pattern
Low — index on sort keys
Medium — cursor encoding, sort keys
Non-unique sort key → unstable ordering, duplicates
Mutable sort key (updated_at) → items move between pages
Cursor tampering → invalid decode, 400
Reverse pagination without reverse index → slow