0Pricing
SQL Academy · Lektion

Grundlagen von LIMIT, OFFSET und Pagination

Blättern Sie mit LIMIT und OFFSET durch große Ergebnismengen, verstehen Sie die Auswirkungen auf die Performance und verwenden Sie Keyset-Pagination für stabiles Scrollen.

Grundlagen von LIMIT, OFFSET und Pagination ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

LIMIT: Ergebnis begrenzen

LIMIT n gibt höchstens n Zeilen zurück:

SELECT * FROM products
ORDER BY created_at DESC
LIMIT 10;

OFFSET: Die ersten N überspringen

OFFSET k überspringt die ersten k Zeilen:

-- Rows 11–20 (the second page of 10):
SELECT * FROM products
ORDER BY created_at DESC
LIMIT 10 OFFSET 10;

Paginierung = LIMIT + OFFSET

Das klassische Muster mit Seitennummern:

-- Page p (1-based), page size s:
SELECT * FROM articles
ORDER BY published_at DESC
LIMIT s OFFSET (p - 1) * s;

Warum OFFSET langsam wird

OFFSET liest intern weiterhin jede übersprungene Zeile:

  • Seite 1 bei 10 → liest 10 Zeilen
  • Seite 1000 bei 10 → liest 10.000 Zeilen
  • Seite 1.000.000 → liest zehn Millionen

OFFSET ist O(offset). Für tiefe Seiten ist das nicht praktikabel.

Keyset-Paginierung („Seek-Methode“)

Blättern Sie vorwärts, indem Sie sich den zuletzt gesehenen Sortierschlüssel merken:

-- First page:
SELECT * FROM articles
ORDER BY published_at DESC, id DESC
LIMIT 20;

-- Next page — pass the last seen (published_at, id):
SELECT * FROM articles
WHERE (published_at, id) < ($1, $2)
ORDER BY published_at DESC, id DESC
LIMIT 20;

Warum Keyset schneller ist

Keyset verwendet einen Indexbereichsscan: Springen Sie direkt zur Zeile nach der zuletzt gesehenen, lesen Sie N Zeilen und sind Sie fertig. Die Kosten betragen O(Seitengröße) und hängen nicht davon ab, wie tief Sie sich befinden.

LIMIT ohne ORDER BY ist nichtdeterministisch

Als Faustregel gilt: Kombinieren Sie immer LIMIT mit ORDER BY. Andernfalls kann die Datenbank bei jedem Aufruf andere Zeilen zurückgeben.

-- Wrong — results may vary between runs:
SELECT * FROM events LIMIT 10;

-- Right:
SELECT * FROM events ORDER BY id DESC LIMIT 10;

Gesamtanzahl und Paginierung

Die Benutzeroberfläche benötigt manchmal die Gesamtanzahl der Zeilen. Eine separate COUNT(*)-Abfrage ist die einfachste Lösung, kann bei großen Tabellen jedoch teuer sein:

SELECT COUNT(*) FROM articles WHERE author_id = $1;

-- Alternative for huge tables: estimate from pg_class.reltuples or use approximate counts.

FETCH FIRST (Standard-SQL)

Die Syntax von Standard-SQL für LIMIT:

SELECT * FROM products
ORDER BY id
FETCH FIRST 10 ROWS ONLY;

-- With offset:
-- OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY

Cursor für sehr große Ergebnismengen

Verwenden Sie zum Exportieren von Millionen Zeilen einen DB-Cursor oder einen Streaming-Treiber statt Schleifen mit LIMIT/OFFSET:

BEGIN;
DECLARE big_cursor CURSOR FOR
  SELECT * FROM events ORDER BY id;
FETCH 1000 FROM big_cursor;
-- ...
CLOSE big_cursor;
COMMIT;

Wann OFFSET in Ordnung ist

OFFSET ist für flache Seiten (Seite 1–10 einer Benutzeroberfläche) oder kleine Tabellen in Ordnung. Für tiefe Paginierung, Infinite Scroll oder APIs sollten Sie Keyset verwenden.

Zusammenfassung

LIMIT und OFFSET paginieren Ergebnismengen.

  • Immer mit ORDER BY kombinieren
  • OFFSET wird bei großer Tiefe langsam – für große Seiten auf Keyset umsteigen
  • FETCH FIRST ist das standardisierte Äquivalent

Kurzer Check

Welche Methode ist am effizientesten, um tief in einer großen Tabelle zu paginieren?

Häufig gestellte Fragen

Ist die Lektion „Grundlagen von LIMIT, OFFSET und Pagination“ kostenlos?

Ja — der vollständige Text von „Grundlagen von LIMIT, OFFSET und Pagination“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Grundlagen von LIMIT, OFFSET und Pagination“?

Blättern Sie mit LIMIT und OFFSET durch große Ergebnismengen, verstehen Sie die Auswirkungen auf die Performance und verwenden Sie Keyset-Pagination für stabiles Scrollen. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Grundlagen von LIMIT, OFFSET und Pagination“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Spalten und Ausdrücke auswählen
  2. WHERE-Filter: Vergleichs- und logische Operatoren
  3. ORDER BY mit einer oder mehreren Spalten
  4. Grundlagen von LIMIT, OFFSET und Pagination
← Zurück zu SQL Academy