Différence entre index cluster et non-cluster
Les index cluster et non cluster sont les deux types d’index qui peuvent améliorer les performances lors du sélection de données avec des champs qui utilisent l’index où l’index cluster détermine la manière dont les données sont stockées dans les lignes d’une table. Tandis que, l’index non cluster stocke les données à un endroit unique et les index sont stockés à un autre endroit. En revanche, chaque table peut avoir un seul index cluster. Par contre, dans le cas d’un index non-cluster, une table peut en avoir plusieurs.
Les index sont essentiellement requis pour une implémentation efficace des contraintes d’intégrité et le traitement efficace des requêtes et des transactions. Ceux-ci sont créés sur des tables et des vues. Par exemple, les index utilisés dans des livres qui facilite a un utilisateur d’accéder rapidement au contenu d’un livre, c’est le même concept sur SQL.
Table de comparaison
Index cluster | Index non cluster | |
---|---|---|
Définition | Détermine l’ordre de stockage des lignes dans une table dans son ensemble. | Détermine l’ordre de stockage des lignes dans une table à l’aide d’une structure physique distincte. |
Nombre d’index autorisés par table | Un seul index cluster | Peut être utilisé plusieurs fois par table |
Accès aux données | Plus rapide | Plus lent par rapport à l’index cluster |
Espace disque supplémentaire | Pas besoin | Obligatoire pour stocker les indices séparément |
Définition de l’index cluster
Les index cluster classent physiquement les données sur le disque. Cela signifie qu’aucune donnée supplémentaire n’est nécessaire pour l’index, mais il ne peut y avoir qu’un seul index cluster. L’accès aux données à l’aide d’un index cluster est le plus rapide.
Définition de l’index non cluster
Un index non-cluster stocke les données à un endroit et les index à un endroit différent et l’index aurait des pointeurs vers l’emplacement de stockage des données. Une table peut avoir plusieurs index non cluster car l’index de l’index non cluster est stocké à un emplacement différent. Cela signifie que l’accès aux données via un index non cluster doit passer par une couche supplémentaire d’indirection. Cependant, si vous sélectionnez uniquement les données disponibles dans les colonnes indexées, vous pouvez récupérer les données directement à partir des données d’index dupliquées (c’est pourquoi il est judicieux de sélectionner uniquement les colonnes dont vous avez besoin et de ne pas les utiliser).
Différences clés entre index cluster et non cluster
- Le nombre d’index cluster qu’une table peut avoir est seulement un. Alors qu’une table peut avoir plusieurs index non cluster.
- Un index cluster est plus rapide que l’index non cluster, car l’index non cluster doit renvoyer à la table de base. Au contraire, ce n’est pas le cas dans l’index cluster.
- Dans un index non cluster, l’index est stocké dans un emplacement distinct qui nécessite un espace de stockage supplémentaire. En revanche, l’index cluster stocke les données d’une table de base dans le même ordre physique que l’ordre logique de l’index, de sorte qu’il ne nécessite pas d’espace de stockage supplémentaire.
Conclusion
L’index cluster est un moyen de stocker des données dans les lignes d’une table dans un ordre particulier. Ainsi, lorsque les données souhaitées sont recherchées, la seule ligne correspondante qui est affectée contient les données et est représentée comme sortie. D’un autre côté, l’index non cluster réside dans une structure physiquement distincte qui fait référence aux données de base lors de la recherche. Un index non-cluster peut avoir un ordre de tri différent.