Différence entre Clustered et index non groupé
Différence clé entre ClusterIndex ed et non groupé
- 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.
- ClusterL'index ed 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.
- Cluster L'index offre un accès aux données plus rapide, en revanche, l'index non clusterisé est plus lent.
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, Serveur SQL, MySQL, etc. pour trouver rapidement la ligne associée aux valeurs clés.
Il existe deux types d'index :
- Clustered Index
- Non-Clustered Index
Qu'est-ce qu'une Clusterindice ed ?
Cluster index est un type d'index qui trie les lignes de données d'une table en fonction de leurs valeurs clés. Dans la base de données, il n'existe qu'un seul index groupé 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.
Par exemple, un livre peut avoir plusieurs index, un au début qui affiche le contenu d'un livre par unité tandis que le deuxième index affiche l'index des termes par ordre alphabétique.
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 Clustered Index
- 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
- Clusteranalyse d'index ed et recherche d'index
- Recherche de clé
Caractéristiques des index non clusterisés
- Stocker uniquement les valeurs clés
- Pointeurs vers le tas/Clustered Lignes d'index
- Permet l'accès aux données secondaires
- Pont vers les données
- Operafonctions 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.
ClusterIndex ed vs index non clusterisé dans SQL : principales différences
Paramètres | Clustered | 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 Clustered Index. | 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
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)
La requête suivante sera récupérée plus rapidement que l'index clusterisé.
SELECT Product ID, OrderQty FROM SalesData WHERE ProductID = 714
Avantages de Clustered Index
Les avantages/avantages de l’index clusterisé sont :
- ClusterLes index ed sont une option idéale pour les requêtes de type plage ou groupe 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à.
- ClusterLa méthode d'index ed 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 Clustered Index
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.