Compound Index
MongoDB 🟡 MidDéfinition
Index créé sur plusieurs champs. L'ordre des champs est crucial : il suit la règle ESR (Equality, Sort, Range) pour des performances optimales.
Analogie
Un annuaire trie d'abord par ville, puis par nom : chercher 'Paris + Dupont' est rapide, mais 'Dupont' seul ne profite pas de l'index.
Exemple de code
db.orders.createIndex(
{ status: 1, createdAt: -1, amount: 1 }
);
// Suit la regle ESR
Cas d'usage
Optimiser des requêtes qui filtrent et trient sur plusieurs champs simultanément.
Anti-pattern
Termes liés
En entretien
Explique la règle ESR pour un index composé.
ESR signifie Equality, Sort, Range : l'ordre des champs dans l'index composé doit suivre cette règle pour des performances optimales. Un annuaire trié d'abord par ville puis par nom illustre bien ça : chercher « Paris + Dupont » est rapide, mais « Dupont » seul ne profite pas de l'index.
Quelle erreur fréquente vois-tu sur les index composés en revue de code ?
Inverser l'ordre des champs dans l'index par rapport à l'ordre réellement utilisé dans les requêtes, ce qui empêche l'index d'être exploité comme prévu. C'est l'anti-pattern le plus courant sur ce sujet.
Fiche mise à jour le 2026-09-27