Lire la sortie de EXPLAIN et EXPLAIN ANALYZE
Décodez les plans d’exécution des requêtes PostgreSQL avec EXPLAIN pour voir comment l’optimiseur exécute une requête et où le temps est réellement dépensé.
Lire la sortie de EXPLAIN et EXPLAIN ANALYZE est une leçon PostgreSQL Performance & Query Optimization gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PostgreSQL Performance & Query Optimization, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PostgreSQL Performance & Query Optimization comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why Read Query Plans
Before tuning a slow query, see what PostgreSQL actually does. EXPLAIN shows the planner's chosen execution plan as a tree of nodes.
EXPLAIN vs EXPLAIN ANALYZE
EXPLAIN shows estimates only; EXPLAIN ANALYZE actually runs the query and reports real timings and row counts — far more useful for diagnosis.
EXPLAIN ANALYZE
SELECT * FROM orders WHERE customer_id = 42;The Plan Tree
Read plan trees inside-out and bottom-up: leaf nodes scan data, parents join or aggregate. Each node reports its cost, rows, and width.
The cost Numbers
The cost reads as cost=0.00..18.45: first is startup cost, second is total, both in arbitrary planner units used to compare competing plans.
Sequential Scan
A Seq Scan reads the whole table — fine for small tables or when most rows match, but a red flag on a selective query over a large one.
Index Scan
An Index Scan uses an index to find matching rows, then fetches them from the table. It's the win for selective predicates.
Estimated vs Actual Rows
Compare estimated rows with actual rows. A big mismatch means stale statistics and often a bad plan — run ANALYZE to refresh them, as shown below.
ANALYZE orders;Spotting the Bottleneck
To find the bottleneck, hunt for the node with the largest actual time, or one whose loops multiply its cost. That's where to focus tuning.
BUFFERS for I/O Insight
Add BUFFERS to your EXPLAIN to see how many pages came from cache versus disk — the fast way to spot I/O-bound queries. See the example below.
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM orders WHERE total > 100;Join Strategies
Watch the join strategy: Nested Loop, Hash Join, or Merge Join. A Nested Loop over many rows without an index is a classic slow pattern.
Readable Formats
For big plans, switch to FORMAT JSON or a visual tool to explore them more easily. The query below shows the JSON option.
EXPLAIN (ANALYZE, FORMAT JSON)
SELECT * FROM orders;Quick Check
Test what you have learned.
Recap
Recap: read EXPLAIN trees, compare estimates with ANALYZE actuals, tell Seq from Index scans and join types, use BUFFERS, and find the bottleneck node.
Questions Fréquemment Posées
La leçon « Lire la sortie de EXPLAIN et EXPLAIN ANALYZE » est-elle gratuite ?
Oui — le texte complet de « Lire la sortie de EXPLAIN et EXPLAIN ANALYZE » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PostgreSQL Performance & Query Optimization, passe à CoddyKit PRO. Le cours PostgreSQL Performance & Query Optimization comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Lire la sortie de EXPLAIN et EXPLAIN ANALYZE » ?
Décodez les plans d’exécution des requêtes PostgreSQL avec EXPLAIN pour voir comment l’optimiseur exécute une requête et où le temps est réellement dépensé. Tu pratiques PostgreSQL Performance & Query Optimization avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PostgreSQL Performance & Query Optimization ?
Aucune expérience préalable n'est requise. PostgreSQL Performance & Query Optimization sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Lire la sortie de EXPLAIN et EXPLAIN ANALYZE » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PostgreSQL Performance & Query Optimization ?
Oui. Chaque leçon PostgreSQL Performance & Query Optimization inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Comprendre les bases des performances des bases de données
- Présentation de l’architecture de PostgreSQL
- Flux d’exécution de base des requêtes
- Lire la sortie de EXPLAIN et EXPLAIN ANALYZE