PostgreSQL-Anleitungen

Kurze, praxisnahe Vertiefungen zu den Teilen von PostgreSQL, die im Produktionsbetrieb zubeißen. Kein Ballast, echte Befehle, ehrliche Abwägungen.

Performance

EXPLAIN ANALYZE richtig lesen

Was die Kosten bedeuten, warum tatsächliche Zeiten und Zeilen Durchschnittswerte pro Schleife sind, was BUFFERS aussagt und die Fallen, die Pläne auf den ersten Blick irreführend machen.

Performance

Den richtigen Index wählen

B-tree deckt die meisten Fälle ab — doch GIN, GiST, BRIN, partielle und Ausdrucks-Indexe haben jeweils einen Moment, in dem sie um eine Größenordnung gewinnen.

Betrieb

VACUUM, Autovacuum und Tabellen-Bloat

MVCC aktualisiert eine Zeile nie an Ort und Stelle. Wohin die toten Versionen gehen, wie Autovacuum entscheidet, wann es aufräumt, und wie man erkennt, wann es hinterherhinkt.

Nebenläufigkeit

Transaktions-Isolationsstufen

Was Read Committed tatsächlich garantiert (weniger, als Sie denken), wann Repeatable Read und Serializable Fehler werfen und wie man korrekt erneut versucht.

Spickzettel

Laufende Abfragen anzeigen

Die pg_stat_activity-Abfrage zum Einfügen, was state und wait_event bedeuten und wie man herausfindet, wer wen blockiert.

Spickzettel

Eine Abfrage sicher beenden

pg_cancel_backend vs. pg_terminate_backend, Massenbereinigung von untätigen Transaktionen — und warum kill -9 aus einer Abfrage einen Ausfall macht.

Spickzettel

Tabellen- & Indexgrößen

Die Abfrage für die größten Tabellen, die drei Größenfunktionen unterschieden und warum Größe auf der Festplatte nicht dasselbe ist wie Live-Daten.

Referenz

PostgreSQL-Cheat-Sheet

Die täglichen Befehle auf einem druckbaren Blatt: psql, Aktivität & Sperren, Kill, Größen, Vacuum, EXPLAIN, Backup, Berechtigungen, SQLSTATEs.

Wie diese Anleitungen geschrieben sind

Jede Anleitung basiert darauf, wie sich PostgreSQL im Produktionsbetrieb tatsächlich verhält, abgeglichen mit der offiziellen Dokumentation. Sie konzentrieren sich auf die Fragen, die auftauchen, wenn um 16 Uhr an einem Wochentag etwas langsam oder blockiert ist — nicht auf Vollständigkeit um ihrer selbst willen. Wo ein Thema ein passendes interaktives Tool auf dieser Website hat, verweist die Anleitung darauf.