Index (base de données)

Structure auxiliaire associée à une table de base de données qui accélère la récupération de données en permettant un accès direct à des enregistrements spécifiques, sans parcourir l’intégralité de la table.

Un index est une structure de données optimisée (souvent basée sur des arbres B, des hachages ou des index bitmap) créée sur une ou plusieurs colonnes d’une table. Il fonctionne de manière analogue à un index alphabétique dans un livre : au lieu de lire chaque page pour trouver une information, on consulte l’index pour accéder directement à la bonne position.

Grâce à l’index, les requêtes utilisant des conditions (WHERE), des tris (ORDER BY) ou des jointures (JOIN) sur les colonnes indexées s’exécutent beaucoup plus rapidement. Cependant, cet avantage en lecture se paie en coût d’écriture : chaque insertion, mise à jour ou suppression d’enregistrement nécessite aussi la mise à jour de l’index, ce qui peut ralentir ces opérations. De plus, les index consomment de l’espace de stockage supplémentaire.

Un bon design d’indexation repose sur une compréhension fine des modèles de requêtes de l’application, afin d’équilibrer performance, coût de maintenance et empreinte disque.

Bonnes pratiques :

  • Indexer les colonnes fréquemment utilisées dans les filtres ou jointures.
  • Éviter les index redondants ou inutilisés (ils pèsent sur les performances sans bénéfice).
  • Privilégier les index composites (multi-colonnes) pour les requêtes complexes.

Exemples de types d’index :

  • Index B-tree : le plus courant, efficace pour les plages de valeurs.
  • Index haché : rapide pour les égalités exactes, mais pas pour les plages.
  • Index full-text : pour la recherche textuelle avancée.
  • Index spatial : pour les données géographiques (ex. : avec PostGIS).
Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.