Différence entre les index cluster et non cluster

Anonim

Index Cluster vs Non Cluster

Les index sont très importants dans n'importe quelle base de données. Ils sont utilisés pour améliorer les performances de récupération des données à partir des tables. Ils sont logiquement et physiquement indépendants des données dans les tables associées. Par conséquent, les index peuvent être supprimés, recréés et reconstruits sans affecter les données des tables de base. Le serveur Oracle peut automatiquement maintenir ses index sans aucune implication d'un DBA, lorsque les tables associées sont insérées, mises à jour et supprimées. Il existe plusieurs types d'index. En voici quelques uns.

1. Index des arbres B

2. Index Bitmap

3. Index basés sur la fonction

4. Index inversé

5. B-tree cluster index

Qu'est-ce qu'un index non cluster?

A partir des types d'index ci-dessus, les suivants sont des index non-cluster.

• Index B-tree

• Index bitmap

• Index basé sur la fonction

• Les index inversés

Les index B-tree sont le type d'index le plus utilisé. Si la commande CREATE INDEX est émise sur la base de données, sans spécifier de type, le serveur Oracle crée un index b-tree. Lorsqu'un index b-tree est créé sur une colonne spécifique, le serveur oracle stocke les valeurs de la colonne et conserve une référence à la ligne réelle de la table.

Les index bitmap sont créés lorsque les données de colonne ne sont pas très sélectives. Cela signifie que les données de colonne ont une faible cardinalité. Ils sont spécialement conçus pour les entrepôts de données et il n'est pas bon d'utiliser des index bitmap sur des tables hautement modifiables ou transactionnelles.

Les index fonctionnels proviennent d'Oracle 8i. Ici, une fonction est utilisée dans la colonne indexée. Par conséquent, dans un index fonctionnel, les données de colonne ne sont pas triées normalement. Il trie les valeurs des colonnes après l'application de la fonction. Ils sont très utiles lorsque la fonction WHERE close de la requête select est utilisée.

Les index inverses sont un type d'index très intéressant. Supposons qu'une colonne contienne de nombreuses données de chaîne uniques comme cityA, cityB, cityC, etc. Toutes les valeurs ont un pattern. Les quatre premiers caractères sont identiques et les parties suivantes sont modifiées. Ainsi, lorsque l'index de clé REVERSE est créé sur cette colonne, Oracle inversera la chaîne et la restaure dans un index b-tree.

Les types d'index mentionnés ci-dessus sont des index NON-CLUSTERED. Cela signifie que les données indexées sont stockées en dehors de la table et qu'une référence triée à la table est conservée.

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

Les index clusterisés sont un type spécial d'index. Il stocke les données en fonction de la façon de stocker les données de la table physiquement. Donc, il ne peut pas y avoir beaucoup d'index clusterisés pour une table. Une table peut avoir un seul index clusterisé.

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

1. Tableau peut avoir un seul index clusterisé, mais il peut y avoir jusqu'à 249 index non clusterisés dans une table.

2. L'index cluster est automatiquement créé lors de la création d'une clé primaire, mais un index non cluster est créé lors de la création d'une clé unique.

3. L'ordre logique de l'index clusterisé correspond à l'ordre physique des données de la table, mais pas aux index clusterisés.