Définitions

Qu'est-ce qu'Index (IDX) ? – Définition de Weendoz

Que signifie l'indice ?

Dans les systèmes de base de données, un index (IDX) est une structure de données définie sur les colonnes d'une table de base de données pour accélérer considérablement les opérations de récupération de données. Un index est une petite copie d'une table de base de données triée par valeurs clés. Sans index, les langages de requête comme SQL devront peut-être analyser l'intégralité de la table de haut en bas pour choisir les lignes pertinentes.

Weendoz explique l'index

Un index sur une table de base de données doit être créé avec soin, car les index consomment de l'espace et sont stockés dans la base de données. Un index peut également rendre les opérations d'écriture plus longues, car l'index doit être mis à jour lorsque la table sous-jacente est mise à jour.

Les différentes structures de données utilisées pour créer des index sont les arbres B+, les arbres équilibrés et les hachages. En utilisant ces structures de données, une analyse de l’ensemble de la table de base de données est relativement simple.

Des index peuvent également être créés sur des fonctions ou des expressions. Un index unique évite les entrées en double dans l'index et la table associée, agissant ainsi comme une contrainte. L’ordre des colonnes est également un aspect important de l’indexation. La première colonne indexée a toujours une priorité ; des identifiants de ligne sont récupérés sur la base des premières colonnes indexées. Dans un scénario normal, les index ne renvoient pas de valeur mais localisent uniquement les enregistrements.

Il existe généralement deux types d'architecture d'index :

  • Index clusterisés : les index clusterisés stockent les données de ligne dans l'ordre. Un seul index clusterisé peut être créé sur une table de base de données. Cela ne fonctionne efficacement que si les données sont triées par ordre croissant et décroissant ou si une limite est spécifiée sur les colonnes impliquées dans le tableau. Une telle disposition séquentielle des données sur les disques réduit les lectures de blocs.
  • Index non clusterisés : dans les index non clusterisés, les données sont organisées de manière aléatoire, mais un ordre logique est spécifié en interne par l'index. Ainsi, l’ordre des index n’est pas le même que l’ordre physique des données. Une instruction « create index » crée par défaut un index non clusterisé, qui crée également un index clusterisé sur la clé primaire. Les clés d'index sont triées ici avec la feuille contenant un pointeur vers la page. Les index non clusterisés fonctionnent bien avec les tables où les données sont fréquemment modifiées et l'index est créé sur les colonnes utilisées dans l'ordre par les instructions WHERE et JOIN.