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é permet à une base de données comme Oracle, SQL Server, MySQL, etc. de trouver rapidement la ligne associée aux valeurs de clé.
Deux types d’index sont:
- Index en cluster
- Index non en cluster
Dans ce tutoriel , vous apprendrez:
- Qu’est-ce qu’un index?
- Qu’est-ce qu’un index clusterisé?
- Qu’est-ce qu’un index non clusterisé?
- Caractéristique d’index clusterisé
- Caractéristiques d’index non clusterisé
- Un exemple d’index clusterisé
- Un exemple d’index non clusterisé
- index clusterisé
- Différences entre l’index clusterisé et l’index non clusterisé
- Avantages de l’index clusterisé
- Avantages de l’index non clusterisé
- Inconvénients de l’index cluster Index
- Inconvénients de l’index non clusterisé
Qu’est-ce qu’un index clusterisé?
L’index cluster est un type d’index qui trie les lignes de données dans le tableau sur leurs valeurs clés. Dans la base de données, il n’y a qu’un seul index cluster 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, généralement, la clé primaire vous permet 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 de nombreux index non clusterisés car un index de l’index non clusterisé est stocké à différents endroits.
Par exemple, un livre peut avoir plus d’un index, un au début qui affiche le contenu d’un livre par unité tandis que le second index montre l’index des termes par ordre alphabétique.
Un index non-clustering est défini dans le champ non-ordering 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 en tant que clé primaire. Un index non clusterisé vous permet d’ajouter une clé unique pour une table.
DIFFÉRENCE CLÉ
- L’index de cluster est un type d’index qui trie les lignes de données de la table sur leurs valeurs de clé alors que l’index non clusterisé stocke les données à un endroit et des indices à un autre endroit.
- 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 espace disque supplémentaire alors que l’index non clusterisé nécessite de l’espace disque supplémentaire.
- L’index cluster offre un accès aux données plus rapide, tandis que l’index non clusterisé est plus lent.
Caractéristique de l’index clusterisé
- Stockage de données par défaut et trié
- Utilisez une ou plusieurs colonnes pour un index
- Aide vous pouvez stocker les données et les indexer ensemble
- Fragmentation
- Opérations
- Balayage d’index groupé et recherche d’index
- Recherche de clé
Caractéristiques des index non clusterisés
- Stocker les valeurs de clé uniquement
- Pointeurs vers les lignes d’index en tas / cluster
- Autorise les données secondaires accès
- Pont vers les données
- Opérations de scan d’index et de recherche d’index
- Vous pouvez créer un non index 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
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, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Un exemple d’index non clusterisé
Dans l’exemple ci-dessous, un index non clusterisé est créé sur OrderQty et ProductID comme suit
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
La requête suivante sera récupérée plus rapidement que l’index clusterisé.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Différences entre les clusters Index et index non groupés
Paramètres | Clustered | Non clustered |
---|---|---|
Utilisation pour | Vous pouvez trier les enregistrements et stocker l’index groupé physiquement en mémoire selon la commande . | 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 | Permet de stocker des 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 | Requis pour stocker l’index séparément |
Type de clé | Par défaut, les clés primaires de la table sont un index en cluster. | Il peut être utilisé avec une contrainte unique sur la table qui agit comme une clé composite. |
Fonctionnalité principale | Un index clusterisé peut améliorer les performances de la récupération des données. | Il doit être créé sur les colonnes utilisées dans les jointures. |
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 group by avec max, min, count
- Dans ce type d’index, une recherche peut aller directement à un point spécifique des données afin que vous peut 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.
- C’est une méthode efficace pour les recherches par plage lorsqu’une plage de valeurs de clé de recherche est demandée.
- Vous aide à minimiser les transferts de page et à maximiser les accès au cache.
Avantages de l’index non clusterisé
Les avantages de l’utilisation d’index non clusterisé sont:
- Un index non clusterisé vous aide pour 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 groupés dans le SGBDR. Ainsi, il peut être utilisé pour créer plus d’un index.
Inconvénients de l’index clusterisé
Voici les inconvénients / inconvénients de l’utilisation de l’index clusterisé:
- Beaucoup d’insertions non séquentielles order
- Un index clusterisé crée de nombreuses divisions de page 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é met plus de temps à mettre à jour les enregistrements lorsque les champs de l’index clusterisé 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’index non clusterisé: