Maison  >  Article  >  base de données  >  Quels sont les types d'index et les caractéristiques de MySQL

Quels sont les types d'index et les caractéristiques de MySQL

王林
王林avant
2023-05-27 15:22:061732parcourir

Remarque : cet article se concentre principalement sur la structure de données d'index B+Tree du moteur de stockage InnoDB

Ce qui suit présente principalement les cinq types d'index ainsi que leurs caractéristiques et différences respectives.

1.B-Tree index

Étant donné que le moteur de stockage n'a pas besoin d'effectuer une analyse complète de la table pour obtenir des données, il commence la recherche directement à partir du nœud racine de l'index, ce qui peut accélérer l'accès aux données.

Avantages :

B-Tree stocke l'index de manière séquentielle, ce qui est très approprié pour la recherche de données de plage. Convient pour la recherche de valeurs de clé complètes, de plages de valeurs de clé ou de préfixes de clé (recherche basée sur le préfixe le plus à gauche).

Limitations. :

Pour l'index conjoint, si vous ne commencez pas la recherche à partir de la colonne la plus à gauche, vous ne pouvez pas utiliser l'index, vous ne pouvez pas ignorer le

2 index B+Tree

est une variante du B-Tree ; index , les moteurs de stockage grand public actuels ne sont pas du pur B-Tree, mais ses variantes B+Tree ou T-Tree, etc. La différence entre

et B-Tree : La principale différence entre

et B-Tree est Les nœuds internes de B+Tree ne stockent pas de données, seulement des clés, et les nœuds feuilles ne stockent pas de pointeurs

3 Index de hachage

Implémenté basé sur la table de hachage, seul le moteur de stockage mémoire est explicite

Avantages :

.

⽀Prend en charge l'index Hash Greek

convient aux requêtes équivalentes, telles que =, in(), <=>

Inconvénients :

ne prend pas en charge les requêtes de plage

Parce qu'il n'est pas stocké dans l'ordre de l'index valeurs, il ne peut pas être comme un index B+Tree. De même, l'index est utilisé pour effectuer le tri. L'index Hash est très rapide lors de l'interrogation de valeurs équivalentes. Étant donné que l'index Hash indexe toujours l'intégralité du contenu de toutes les colonnes, il ne prend pas en charge la correspondance. recherche certaines colonnes d'index.

S'il y a un grand nombre de valeurs de clé en double, l'efficacité de l'index de hachage sera très faible en raison du problème de collision de hachage. Les programmeurs peuvent créer un index de hachage adaptatif basé sur l'index B+Tree

4. Index de texte

MyISAM et InnoDB prennent en charge l'index complet, avec trois modes : le mode langage naturel, le mode booléen et le mode d'expansion des requêtes

5. Index R-Tree

MyISAM prend en charge l'index R-Tree, ceci et l'index complet. -l'index de texte n'est fondamentalement pas pertinent

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer