Ohne Pagination liefern Sie Millionen von Datensätzen auf einmal zurück. Offset ist einfach aber langsam, Cursor ist schnell aber komplexer.
Offset-Pagination¶
– Einfach, aber langsam bei großen Tabellen SELECT * FROM products ORDER BY id LIMIT 20 OFFSET 1000; – DB muss 1000 Zeilen überspringen!
API¶
GET /api/products?page=51&limit=20
Cursor-(Keyset-)Pagination¶
– Schnell auch bei Millionen von Zeilen SELECT * FROM products WHERE id > :last_id – Cursor = letzte ID ORDER BY id LIMIT 20;
API Response¶
{ “data”: […], “meta”: { “next_cursor”: “eyJpZCI6MTAyMH0=”, “has_more”: true } }
Wann welche verwenden¶
- Offset: Admin-Panels, kleine Datensätze, Bedarf an „Gehe zu Seite X”
- Cursor: Feeds, Infinite Scroll, Echtzeitdaten, große Datensätze
Wichtigste Erkenntnis¶
Cursor-Pagination für Produktion (schnell, stabil). Offset nur für Admin/kleine Datensätze.