Comprendre ce que PostgreSQL fait réellement

Des outils gratuits dans le navigateur et des guides sans blabla pour les développeurs qui travaillent avec PostgreSQL au quotidien : lire les plans de requête, choisir le bon index, garder VACUUM sous contrôle.

🔒 Rien n'est envoyé. Tout le parsing et l'analyse se font côté client dans votre navigateur. Vos plans de requête, vos requêtes et vos données n'atteignent jamais aucun serveur.

Outils

Outil

Visualiseur EXPLAIN ANALYZE

Collez la sortie d'EXPLAIN ANALYZE — texte brut ou JSON — et obtenez un flame graph plus un arbre de plan interactif : durées par nœud, écarts d'estimation de lignes et déversements sur disque mis en évidence automatiquement. Liens partageables inclus.

Guides PostgreSQL

Tous les guides →
Guide

Comment lire EXPLAIN ANALYZE

Coûts vs temps réels, moyennes par boucle, buffers, et les pièges classiques qui font mentir les plans.

Guide

Choisir le bon index

B-tree, GIN, GiST, BRIN et compagnie : à quoi sert chaque type d'index, plus les index partiels, sur expression et couvrants.

Guide

VACUUM, autovacuum et bloat

Pourquoi MVCC laisse des lignes mortes derrière lui, comment autovacuum décide quand se déclencher, et comment repérer une table qui gonfle.

Guide

Niveaux d'isolation des transactions

Read Committed vs Repeatable Read vs Serializable en pratique : anomalies, erreurs de sérialisation, et quand réessayer.

Référence

Cheat sheet PostgreSQL

Les commandes de tous les jours sur une feuille imprimable : psql, activité et verrous, kill, tailles, vacuum, EXPLAIN, sauvegarde, privilèges, SQLSTATE.

Référence des erreurs PostgreSQL

Toutes les erreurs →
Erreur

deadlock detected

Deux transactions détiennent chacune un verrou dont l'autre a besoin. Comment lire les lignes DETAIL et les habitudes d'ordonnancement des verrous qui l'évitent.

Erreur

too many clients already

max_connections est épuisé. Qui occupe les slots, et pourquoi le correctif durable est généralement un pooler, pas une limite plus haute.

Erreur

duplicate key value

Une contrainte d'unicité a fait son travail — la question intéressante est pourquoi : une course à l'insertion, une séquence obsolète, ou un client qui réessaie.

Erreur

relation does not exist

La table existe — vous ne regardez simplement pas là où PostgreSQL regarde : search_path, identifiants entre guillemets, mauvaise base de données.

Pourquoi pgviz ?

Lire un plan de requête PostgreSQL brut est difficile : les durées sont cumulatives, les nombres de lignes sont des moyennes par boucle, et les problèmes intéressants (mauvaises estimations, tris qui débordent sur disque, boucles imbriquées coûteuses) se cachent dans les détails. Les outils de ce site font l'arithmétique à votre place et pointent ce qui compte vraiment, et les guides expliquent les concepts derrière les chiffres.

Tout ici est gratuit, fonctionne hors ligne une fois chargé, et n'envoie rien à aucun serveur. À côté des outils, vous trouverez des guides pratiques et une référence croissante des erreurs PostgreSQL courantes — ce que chacune signifie, pourquoi elle se produit et comment la corriger. Il y en aura d'autres : un générateur de postgresql.conf et un calculateur de taille d'index.