Compound Index

MongoDB 🟡 Mid

Dé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

Inverser l'ordre des champs dans l'index par rapport aux requêtes réelles.
#sgbd#interview#database#mongodb

En entretien

  1. 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.

  2. 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

← → au clavier pour passer d'une fiche à l'autre