L'index de la base de données est similaire à l'index bibliographique construit par une bibliothèque universitaire, ce qui peut améliorer l'efficacité de la récupération des données et réduire le coût d'E/S de la base de données. Les performances de MySQL commenceront à diminuer progressivement autour de 3 millions d'enregistrements, il est donc très nécessaire de créer des index lorsque vous rencontrez de grandes quantités de données.
La définition officielle de l'index par MySQL est la suivante : L'index est une structure de données qui aide MySQL à obtenir des données efficacement.
Nous pouvons simplement le comprendre comme : une structure de données qui peut être rapidement recherchée et triée.
L'index MySQL a principalement deux structures : l'index B+Tree et l'index Hash.
Ce que l'on appelle habituellement un index, sauf indication contraire, fait généralement référence à un index organisé selon une structure B-tree (index B+Tree). L'index est affiché dans l'image ci-dessus.
Le bloc de disque bleu clair 1 le plus à l'extérieur contient les données 17, 35 (bleu foncé) et les pointeurs P1, P2, P3 (jaune). Le pointeur P1 représente les blocs de disque inférieurs à 17, P2 est compris entre 17 et 35 et P3 pointe vers les blocs de disque supérieurs à 35. Les données réelles existent dans les nœuds cotylédons, c'est-à-dire la couche inférieure 3, 5, 9, 10, 13... Les nœuds non-feuilles ne stockent pas de données réelles, mais stockent uniquement les éléments de données qui guident la direction de recherche, tels que 17, 35 .
Processus de recherche : par exemple, pour rechercher 28 éléments de données, chargez d'abord le bloc de disque 1 en mémoire, une E/S se produit et utilisez la recherche binaire pour déterminer le pointeur P2. Ensuite, on constate que 28 est compris entre 26 et 30, le bloc de disque 3 est chargé dans la mémoire via l'adresse du pointeur P2 et la deuxième E/S a lieu. Le bloc disque 8 est trouvé de la même manière et la troisième E/S a lieu.
La situation réelle est que les trois couches ci-dessus de B+Tree peuvent représenter des millions de données. Des millions de données ne nécessitent que trois E/S au lieu de millions d'E/S, ce qui améliore énormément le temps.
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!