Kostenloser Leitfaden
Warum ist deine Abfrage langsam?
„Da fehlt ein Index“ stimmt manchmal. Oft gibt es den Index längst, und PostgreSQL benutzt ihn nicht. Oder der Planer verschätzt sich um den Faktor 20. Was wirklich passiert, zeigt dir EXPLAIN, wenn du es lesen kannst.
Im Leitfaden
- Einen Ausführungsplan lesen: die vier Angaben, auf die es ankommt, an einer Abfrage über eine Million Bestellungen.
- Drei Signale mit Ursache und Lösung: viel gelesen und wenig behalten, eine Schätzung um den Faktor 20 daneben, ein Index, der da ist und nicht benutzt wird.
- Ein Spickzettel für den nächsten langsamen Plan, dazu das Ausweichen auf die Platte beim Sortieren.
Rund 45 Minuten, alles zum Nachmachen mit Docker. Jede Abfrage und jede Ausgabe ist gegen PostgreSQL 18 geprüft. Du brauchst Grundkenntnisse in SQL.
Ein Ausschnitt
Vor dem Index: eine Million Zeilen gelesen, um zwölf zu finden.
Seq Scan on bestellungen (cost=0.00..19920.00 rows=11 width=18)
(actual time=0.152..39.696 rows=12.00 loops=1)
Filter: (kunde_id = 4711)
Rows Removed by Filter: 999988
Buffers: shared hit=7420
Execution Time: 39.714 ms
Danach: 15 statt 7.420 Seiten, 0,025 statt 40 Millisekunden. Warum, und wann ein Index nicht hilft, steht im Leitfaden.