Verstehen Sie, was PostgreSQL wirklich tut

Kostenlose browserbasierte Tools und Anleitungen ohne Ballast für Entwickler, die täglich mit PostgreSQL arbeiten: Query-Pläne lesen, den richtigen Index wählen, VACUUM zufriedenstellen.

🔒 Es wird nichts hochgeladen. Sämtliches Parsen und Analysieren geschieht clientseitig in Ihrem Browser. Ihre Query-Pläne, Abfragen und Daten erreichen niemals einen Server.

Tools

Tool

EXPLAIN ANALYZE Visualizer

Fügen Sie die Ausgabe von EXPLAIN ANALYZE ein — als Klartext oder JSON — und erhalten Sie ein Flame-Graph sowie einen interaktiven Planbaum: Zeiten pro Knoten, Abweichungen bei Zeilenschätzungen und Auslagerungen auf die Festplatte werden automatisch hervorgehoben. Teilbare Links inklusive.

PostgreSQL-Anleitungen

Alle Anleitungen →
Anleitung

EXPLAIN ANALYZE richtig lesen

Kosten vs. tatsächliche Zeiten, Durchschnittswerte pro Schleife, Buffers und die klassischen Fallen, mit denen Pläne Sie täuschen.

Anleitung

Den richtigen Index wählen

B-tree, GIN, GiST, BRIN und Co.: wofür jeder Indextyp gedacht ist, dazu partielle, Ausdrucks- und abdeckende Indexe.

Anleitung

VACUUM, Autovacuum und Bloat

Warum MVCC tote Zeilen zurücklässt, wie Autovacuum entscheidet, wann es läuft, und wie Sie eine aufblähende Tabelle erkennen.

Anleitung

Transaktions-Isolationsstufen

Read Committed vs. Repeatable Read vs. Serializable in der Praxis: Anomalien, Serialisierungsfehler und wann man erneut versucht.

Referenz

PostgreSQL-Cheat-Sheet

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

PostgreSQL-Fehlerreferenz

Alle Fehler →
Fehler

deadlock detected

Zwei Transaktionen halten jeweils eine Sperre, die die andere benötigt. Wie Sie die DETAIL-Zeilen lesen und mit welchen Sperrreihenfolge-Gewohnheiten Sie das verhindern.

Fehler

too many clients already

max_connections ist erschöpft. Wer belegt die Slots, und warum die dauerhafte Lösung meist ein Pooler ist, nicht ein höheres Limit.

Fehler

duplicate key value

Ein Unique-Constraint hat seine Arbeit getan — die interessante Frage ist, warum: ein Insert-Race, eine veraltete Sequence oder ein wiederholender Client.

Fehler

relation does not exist

Die Tabelle existiert — Sie schauen nur nicht dorthin, wo PostgreSQL schaut: search_path, gequotete Bezeichner, falsche Datenbank.

Warum pgviz?

Einen rohen PostgreSQL-Query-Plan zu lesen ist schwer: Zeiten sind kumulativ, Zeilenanzahlen sind Durchschnittswerte pro Schleife, und die interessanten Probleme (schlechte Schätzungen, auf die Festplatte auslagernde Sortierungen, teure Nested Loops) verstecken sich in den Details. Die Tools auf dieser Website erledigen die Rechnerei für Sie und zeigen, worauf es wirklich ankommt, und die Anleitungen erklären die Konzepte hinter den Zahlen.

Alles hier ist kostenlos, funktioniert nach dem Laden auch offline und sendet nichts an einen Server. Neben den Tools finden Sie praxisnahe Anleitungen und eine wachsende Referenz häufiger PostgreSQL-Fehler — was jeder bedeutet, warum er auftritt und wie man ihn behebt. Mehr kommt: ein postgresql.conf-Generator und ein Index-Größenrechner.