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

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

  • Un index de cluster est un type d'index qui trie les lignes de données du tableau en fonction de leurs valeurs clés, tandis que l'index non clusterisé stocke les données à un emplacement et les index à un autre emplacement.
  • L'index clusterisé stocke les pages de données dans les nœuds feuilles de l'index, tandis que la méthode d'index non clusterisé ne stocke jamais les pages de données dans les nœuds feuilles de l'index.
  • L'index de cluster ne nécessite pas d'espace disque supplémentaire, tandis que l'index non clusterisé nécessite de l'espace disque supplémentaire.
  • L'index de cluster offre un accès plus rapide aux données, en revanche, l'index non clusterisé est plus lent.
Différence entre les index clusterisés et non clusterisés
Index clusterisé ou non clusterisé

Qu'est-ce qu'un index?

Un index est une clé construite à partir d'une ou plusieurs colonnes de la base de données qui accélère la récupération des lignes de la table ou de la vue. Cette clé aide une base de données comme Oracle, SQL Server, MySQL, etc. à trouver rapidement la ligne associée aux valeurs clés.

Il existe deux types d'index :

  • Index groupé
  • Index non-cluster

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

L'index de cluster est un type d'index qui trie les lignes de données du tableau en fonction de leurs valeurs clés. Dans la base de données, il n'y a qu'un seul index clusterisé par table.

Un index clusterisé définit l'ordre dans lequel les données sont stockées dans la table qui ne peut être triée que d'une seule manière. Ainsi, il ne peut y avoir qu’un seul index clusterisé pour chaque table. Dans un SGBDR, la clé primaire vous permet généralement de créer un index clusterisé basé sur cette colonne spécifique.

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

Un index non clusterisé stocke les données à un emplacement et les index à un autre emplacement. L'index contient des pointeurs vers l'emplacement de ces données. Une seule table peut avoir plusieurs index non clusterisés, car un index de l'index non clusterisé est stocké à différents endroits.

For example, a book can have more than one index, one at the beginning which displays the contents of a book unit wise while the second index shows the index of terms in alphabetical order.
Un index non clusterisant est défini dans le champ non trié de la table. Ce type de méthode d'indexation vous aide à améliorer les performances des requêtes qui utilisent des clés qui ne sont pas affectées comme clé primaire. Un index non clusterisé vous permet d'ajouter une clé unique pour une table.

Caractéristique de l'index clusterisé

  • Stockage des données par défaut et triées
  • Utilisez une ou plusieurs colonnes pour un index
  • Vous aide à stocker les données et l'index ensemble
  • Fragmentation
  • Opérations
  • Analyse d'index groupé et recherche d'index
  • Recherche de clé

Caractéristiques des index non clusterisés

  • Stocker uniquement les valeurs clés
  • Pointeurs vers les lignes de tas/index clusterisé
  • Permet l'accès aux données secondaires
  • Pont vers les données
  • Opérations de numérisation d’index et de recherche d’index
  • Vous pouvez créer un index non clusterisé pour une table ou une vue
  • Chaque ligne d'index de l'index non clusterisé stocke la valeur de la clé non clusterisée et un localisateur de lignes.

Index clusterisé ou non clusterisé dans SQL : principales différences

Paramètres Clusterisé Non clusterisé
Utiliser pour Vous pouvez trier les enregistrements et stocker physiquement l'index clusterisé en mémoire selon l'ordre. Un index non clusterisé vous aide à créer un ordre logique pour les lignes de données et utilise des pointeurs pour les fichiers de données physiques.
Méthode de stockage Vous permet de stocker les pages de données dans les nœuds feuilles de l'index. Cette méthode d'indexation ne stocke jamais les pages de données dans les nœuds feuilles de l'index.
Taille La taille de l'index clusterisé est assez grande. La taille de l'index non clusterisé est petite par rapport à l'index clusterisé.
Accès aux données Plus rapide Plus lent par rapport à l'index clusterisé
Espace disque supplémentaire Non requis Obligatoire pour stocker l'index séparément
Type de clé Par défaut, les clés primaires de la table sont un index clusterisé. Il peut être utilisé avec une contrainte unique sur la table qui fait office de clé composite.
Caractéristique principale Un index clusterisé peut améliorer les performances de récupération des données. Il doit être créé sur les colonnes utilisées dans les jointures.

Un exemple d'index clusterisé

Dans l'exemple ci-dessous, SalesOrderDetailID est l'index clusterisé. Exemple de requête pour récupérer des données

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

Exemple d'index clusterisé

Un exemple d'index non clusterisé

Dans l'exemple ci-dessous, un index non cluster est créé sur OrderQty et ProductID comme suit

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

Exemple d'index non clusterisé

Le following La requête sera récupérée plus rapidement que l'index clusterisé.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Exemple d'index non clusterisé

Avantages de l'index clusterisé

Les avantages/avantages de l’index clusterisé sont :

  • Les index clusterisés sont une option idéale pour les requêtes de type plage ou regroupement avec max, min, count
  • Dans ce type d'index, une recherche peut aller directement à un point spécifique des données afin que vous puissiez continuer à lire séquentiellement à partir de là.
  • La méthode d'index clusterisé utilise un mécanisme de localisation pour localiser l'entrée d'index au début d'une plage.
  • Il s'agit d'une méthode efficace pour les recherches par plage lorsqu'une plage de valeurs clés de recherche est demandée.
  • Vous aide à minimiser les transferts de pages et à maximiser les accès au cache.

Avantages de l'index non clusterisé

Les avantages de l'utilisation d'un index non clusterisé sont :

  • Un index non clusterisé vous aide à récupérer rapidement les données de la table de base de données.
  • Vous aide à éviter les frais généraux associés à l’index clusterisé
  • Une table peut avoir plusieurs index non clusterisés dans RDBMS. Ainsi, il peut être utilisé pour créer plusieurs index.

Inconvénients de l'index clusterisé

Voici les inconvénients/inconvénients de l’utilisation d’un index clusterisé :

  • Beaucoup d'inserts dans un ordre non séquentiel
  • Un index clusterisé crée de nombreuses divisions de pages constantes, qui incluent des pages de données ainsi que des pages d'index.
  • Travail supplémentaire pour SQL pour les insertions, les mises à jour et les suppressions.
  • Un index clusterisé prend plus de temps pour mettre à jour les enregistrements lorsque les champs de l'index cluster sont modifiés.
  • Les nœuds feuilles contiennent principalement des pages de données dans l'index clusterisé.

Inconvénients de l'index non clusterisé

Voici les inconvénients/inconvénients de l’utilisation d’un index non clusterisé :

  • Un index non clusterisé vous aide à stocker les données dans un ordre logique mais ne permet pas de trier physiquement les lignes de données.
  • Le processus de recherche sur un index non clusterisé devient coûteux.
  • Chaque fois que la clé de clustering est mise à jour, une mise à jour correspondante est requise sur l'index non clusterisé car il stocke la clé de clustering.