EXPLAIN / EXPLAIN ANALYZE
PostgreSQL 🟡 MidDéfinition
EXPLAIN montre le plan d'exécution prévu d'une requête. EXPLAIN ANALYZE exécuté réellement la requête et montre les temps réels. Essentiel pour l'optimisation.
Analogie
EXPLAIN = le GPS qui te montre l'itinéraire prévu. EXPLAIN ANALYZE = le GPS avec le temps réel du trajet.
Exemple de code
EXPLAIN ANALYZE
SELECT u.name, COUNT(o.id)
FROM users u
JOIN orders o ON u.id = o.user_id
GROUP BY u.name;
Cas d'usage
Diagnostiquer les requêtes lentes, vérifier l'utilisation des index et optimiser les jointures.
Anti-pattern
Termes liés
En entretien
Quelle différence entre EXPLAIN et EXPLAIN ANALYZE ?
EXPLAIN montre le plan d'exécution prévu sans exécuter la requête, comme un GPS qui affiche l'itinéraire prévu. EXPLAIN ANALYZE exécute réellement la requête et montre les temps réels, comme le GPS avec le temps de trajet effectif.
Comment tu debuggerais une requête lente avec jointure ?
Je lancerais un EXPLAIN ANALYZE dessus pour diagnostiquer les temps réels et vérifier l'utilisation des index sur la jointure. C'est l'usage même de cet outil : diagnostiquer les requêtes lentes et optimiser les jointures.
Pourquoi faut-il faire attention en utilisant EXPLAIN ANALYZE sur un DELETE ou un UPDATE ?
Parce qu'EXPLAIN ANALYZE exécute réellement la requête, donc un DELETE ou un UPDATE modifie vraiment les données. Il faut l'entourer d'une transaction si on veut annuler l'effet après coup.
Fiche mise à jour le 2026-09-27