Quelle est la différence entre les index clusterisés et non clusterisés

le différence principale entre index clusterisé et non clusterisé est que il n'y a qu'un seul index clusterisé par table alors qu'il y a plusieurs index non clusterisés par table.

Tout d’abord, l’indexation est une technique permettant de récupérer facilement et efficacement des enregistrements à partir des fichiers de base de données. Il accélère les performances de la requête pour les applications clientes utilisant la base de données. De plus, il existe deux types d'index en tant qu'index clusterisé et non clusterisé. L'index clusterisé modifie l'ordre dans lequel les données sont stockées sur le disque. Cependant, dans un index non clusterisé, l'ordre logique de l'index ne correspond pas à l'ordre physique des données stockées sur le disque..

Zones clés couvertes

1. Qu'est-ce qu'un index
     - Définition, fonctionnalité
2. Qu'est-ce qu'un index clusterisé?
     - Définition, fonctionnalité
3. Qu'est-ce qu'un index non clusterisé?
     - Définition, fonctionnalité
4. Quelle est la différence entre les index clusterisés et non clusterisés
     - Comparaison des différences clés

Mots clés

Index clusterisé, index non clusterisé

Qu'est-ce qu'un index

Supposons une table qui stocke les détails du client. Il comporte trois colonnes: prénom, nom et numéro de contact. S'il n'y a pas d'index dans la table, les données seront insérées dans les espaces libres de la mémoire sans ordre particulier. Si l'utilisateur souhaite obtenir le numéro de téléphone d'un client spécifique, il est nécessaire de rechercher les données depuis le début. Même si nous obtenons les données, il est nécessaire de continuer jusqu'au bout car il peut y avoir des données correspondantes à la fin. Les index sont utiles dans ces situations.

Qu'est-ce qu'un index clusterisé?

Un index clusterisé modifie l'ordre dans lequel les données sont physiquement stockées. Une fois que les données de la table sont dans l'ordre physique, le SGBD crée des pages d'index. Ils aident à naviguer facilement vers les données requises. L'ensemble de la structure contenant les données de la table de base est appelé index clusterisé. Le processus d'une requête naviguant dans l'arborescence d'index en cluster vers les données de la table de base est appelé recherche d'index en cluster. Il existe un index clusterisé par table car il est impossible d'organiser physiquement les données de deux manières différentes sans utiliser des structures séparées..

Qu'est-ce qu'un index non clusterisé?

Un index non clusterisé ne trie pas les données physiques de la table. L'index et la table sont stockés à des endroits différents. De plus, il existe des pointeurs ou des références aux données de la table. Il est possible de stocker des données dans n'importe quel ordre car cet ordre est indépendant des données de la table de base. Par conséquent, il peut y avoir plus d'un index non clusterisé par table. Les données de la table de base sont en tas, alors que les références sont les identificateurs de ligne..

Lors de l'exécution d'une requête sur une colonne, la base de données commence par rechercher l'index et recherche l'adresse de la ligne correspondante dans la table. Ensuite, il passe à l'adresse de la ligne et récupère les autres valeurs de colonne. Par conséquent, les index non clusterisés sont plus lents que les index clusterisés. Quand une clé unique est définie dans la table, un index non-cluster est créé automatiquement..

Différence entre les index clusterisés et non clusterisés

Définition

Un index clusterisé est un type d'index dans lequel les enregistrements de la table sont physiquement réordonnés pour correspondre à l'index. En revanche, un index non clusterisé est un type spécial d’index dans lequel l’ordre logique de l’index ne correspond pas à l’ordre physique stocké des lignes sur le disque. Ces définitions expliquent la différence entre les index clusterisés et non clusterisés..

Nombre d'index

Le nombre d'index par table constitue une différence majeure entre les index clusterisés et non clusterisés. Une table peut avoir un seul index clusterisé, mais plusieurs index non clusterisés..

La fonctionnalité

L'index clusterisé ne stocke pas les pointeurs sur les données réelles. Cependant, l'index non clusterisé stocke à la fois la valeur et un pointeur sur la ligne contenant les données. C'est donc une autre différence entre les index clusterisés et non clusterisés..

Ordre de stockage des données

De plus, un index de cluster détermine l'ordre de stockage des données sur le disque, tandis qu'un index non cluster n'a aucun effet sur l'ordre de stockage des données sur le disque..

Espace mémoire requis

De plus, un index non clusterisé requiert plus d'espace mémoire qu'un index clusterisé..

La vitesse

La vitesse est une autre différence entre les index clusterisés et non clusterisés. Les index non clusterisés sont plus lents que les index clusterisés.

Conclusion

Il existe deux types d'index en tant qu'index clusterisé et non clusterisé. La différence entre les index clusterisés et non clusterisés réside dans le fait qu'il n'y a qu'un seul index clusterisé par table alors qu'il existe plusieurs index non clusterisés par table. En bref, un index non clusterisé est plus lent et nécessite plus d'espace qu'un index clusterisé.

Référence:

1. Yadav, Durgaprasad. “Index in Sql Server.” LinkedIn SlideShare, 21 nov. 2015, disponible ici.
2. Rahaman, Mahabubur. «Introduction de Sql Server Indexing.». LinkedIn SlideShare, 23 mai 2015, disponible ici..

Courtoisie d'image:

1. «Logo des bases de données» par Borjasotomayor sur Wikibooks anglais (CC BY-SA 3.0) via Commons Wikimedia