Module 1 : Comprendre les bases de données
1.1 — Pourquoi les bases de données ? Aperçu
Module 2 : Installation et découverte de PostgreSQL
2.1 — Installer PostgreSQL Aperçu
Module 3 : Le langage SQL — Les fondamentaux
3.1 — SELECT : lire des données Aperçu
Module 4 : Conception et création de tables
4.1 — Clés primaires et identifiants Aperçu
Module 5 : Requêtes SELECT avancées
5.1 — DISTINCT, CASE, COALESCE, NULLIF Aperçu
Module 6 : Jointures SQL
6.1 — INNER JOIN : le cœur des bases relationnelles Aperçu
Module 7 : Agrégation et regroupement avancés
7.1 — GROUP BY approfondi Aperçu
Module 8 : Sous-requêtes et CTE
8.1 — Sous-requêtes scalaires et de liste Aperçu
Module 9 : Fonctions SQL intégrées
9.1 — Fonctions de chaînes Aperçu
Module 10 : Indexation et performances
10.1 — Comprendre EXPLAIN ANALYZE Aperçu
Module 11 : Contraintes avancées et intégrité
11.1 — Domaines et types personnalisés Aperçu
Module 12 : Transactions et concurrence
12.1 — Transactions ACID Aperçu
Module 13 : Vues et vues matérialisées
13.1 — Vues simples et modifiables Aperçu
Module 14 : Procédures stockées et fonctions PL/pgSQL
14.1 — Premiers pas en PL/pgSQL Aperçu
Module 15 : Triggers et événements
15.1 — Créer un trigger simple Aperçu
Module 16 : Sécurité, rôles et permissions
16.1 — Rôles, utilisateurs et GRANT Aperçu
Module 17 : Sauvegarde, restauration et maintenance
17.1 — pg_dump et pg_restore Aperçu
Module 18 : Types de données avancés
18.1 — JSON et JSONB Aperçu
Module 19 : Recherche plein texte (Full-Text Search)
19.1 — tsvector et tsquery Aperçu
Module 20 : Projet final — Conception complète
20.1 — Analyse du besoin et cahier des charges Aperçu

Le reste de la formation est réservé aux inscrits.

S'inscrire gratuitement
Module 10 : Indexation et performances Aperçu gratuit

10.1 — Comprendre EXPLAIN ANALYZE

📋 Objectifs d'apprentissage

  • Lire un plan d'exécution EXPLAIN
  • Identifier les opérations : Seq Scan, Index Scan, Bitmap Scan, Nested Loop, Hash Join
  • Comparer EXPLAIN vs EXPLAIN ANALYZE
EXPLAIN ANALYZE SELECT * FROM commandes WHERE client_id = 42;
OpérationSignificationQuand s'inquiéter
Seq ScanLecture séquentielle de toute la tableSur une grosse table avec peu de résultats
Index ScanUtilise un index B-tree, efficacePresque jamais
Bitmap Index ScanCombine plusieurs indexesSi un index unique suffirait
Nested LoopBoucle imbriquée (petite table × grande)Sur deux grandes tables
Hash JoinTable de hachage en mémoireSi mémoire insuffisante (passe sur disque)

🔑 À retenir

Un Seq Scan sur une table de 10 lignes est parfait. Sur 10 millions de lignes avec un WHERE, c'est un problème. Le contexte (taille des données) est tout.

Ceci est un aperçu gratuit.
Voir la formation complète