Qu'est-ce que Index (index de base de données) ?
Structure de données d'une base de données qui permet de trouver rapidement, à partir d'une valeur d'une colonne donnée d'une table, l'emplacement des lignes qui contiennent cette valeur. Les arbres B+ sont couramment utilisés. Un index accélère les recherches, mais il doit être tenu à jour à chaque insertion, modification ou suppression de ligne, et il occupe de l'espace de stockage.
Nom japonais: インデックス
« Index (index de base de données) » apparaît dans 4 questions d'entraînement réparties sur 1 thèmes, dont Bases des bases de données.
Domaine: Bases des bases de données
Quand un index aide, et quand il n'aide pas
Un index est efficace sur une colonne très sélective, où une condition réduit les lignes à une petite fraction de l'ensemble. Une colonne dont toutes les valeurs sont différentes, comme un numéro de membre, est idéale ; mais sur une colonne à 2 valeurs seulement, comme le sexe, environ la moitié des lignes correspondent, et un parcours complet qui lit la table dans l'ordre est souvent plus rapide que l'extraction des lignes une à une via l'index. Un index ordinaire peut aussi être inutilisable pour des conditions qui appliquent une fonction à la colonne ou pour des recherches par suffixe comme LIKE '%eau'.
Questions fréquentes
Faut-il créer un index sur toutes les colonnes ?
Non. Plus il y a d'index, plus il faut de travail de maintenance à chaque insertion ou modification de ligne, et plus l'espace de stockage utilisé augmente. Créez des index sur les colonnes souvent utilisées comme conditions de recherche ou de jointure et qui réduisent suffisamment le nombre de lignes.
Pourquoi un index n'est-il pas utilisé alors qu'il a été créé ?
Parmi les raisons possibles : l'optimiseur juge que tant de lignes correspondent qu'un parcours complet de la table est plus rapide, ou bien la condition ne peut pas exploiter l'ordre de l'index, par exemple parce qu'elle applique une fonction à la colonne ou qu'il s'agit d'une recherche LIKE par suffixe.