Datenbanken · Middle · Frage 36 von 75
Warum ist Keyset-Paginierung (Cursor) für tiefe Seiten schneller als OFFSET?
SELECT * FROM posts
WHERE (created_at, id) < ($1, $2)
ORDER BY created_at DESC, id DESC
LIMIT 20;- 1Sie springt per Index, statt frühere Zeilen zu verwerfen
- 2Sie cacht beim ersten Aufruf alle Seiten im Speicher
- 3Sie liefert pro Zeile weniger Spalten
Antwort zeigen
Richtige Antwort: Sie springt per Index, statt frühere Zeilen zu verwerfen
Erklärung
Nimm eine eindeutige Spalte (etwa id) als Entscheidungshilfe bei Gleichstand dazu. Der Kompromiss: kein Sprung zu einer beliebigen Seitenzahl.