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!