Sobes.tech
Senior

Why did you switch to cursor pagination? What is the problem with LIMIT/OFFSET?

sobes.tech AI

Answer from AI

Cursor-based pagination is associated with issues that arise when using the traditional approach with LIMIT and OFFSET:

  • Performance loss on large pages. With a large OFFSET, the database has to skip many rows, which slows down the query.
  • Data inconsistency during changes. If data is added or removed between requests, pagination with OFFSET can skip or duplicate records.

Cursor-based pagination uses a unique identifier or a sortable field (e.g., date or ID) as a cursor for the next page. This allows:

  • Quickly retrieving the next page without skipping rows.
  • Avoiding issues with data changes between requests.

Example: instead of LIMIT 10 OFFSET 100, the query would be WHERE id > last_seen_id ORDER BY id LIMIT 10.

Thus, cursor-based pagination is more efficient and reliable for large and dynamically changing datasets.