Maison >base de données >tutoriel mysql >Quel est le principe de l'index mysql ?

Quel est le principe de l'index mysql ?

藏色散人
藏色散人original
2019-04-02 16:27:572381parcourir

Cet article vous présente principalement les principes de l'indexation MySQL. J'espère qu'il sera utile aux amis dans le besoin ! (Recommandations associées : "tutoriel mysql") L'efficacité des requêtes peut être comparée à celle d'un dictionnaire. Si nous voulons rechercher le mot "mysql", nous devons absolument localiser la lettre m, puis trouver la lettre y. de bas en bas, puis recherchez le SQL restant. S'il n'y a pas d'index, vous devrez peut-être parcourir tous les mots pour trouver ce que vous voulez. Et si je veux trouver des mots commençant par m ? Ou qu’en est-il des mots commençant par ze ? Pensez-vous que sans index, cette affaire ne peut pas être menée à bien ?

Quel est le principe de l'index mysql ?Principe de l'index MySQL

En plus des dictionnaires, des exemples d'index peuvent être vus partout dans la vie, comme les horaires des trains dans les gares, les catalogues de livres, etc. Leurs principes sont les mêmes : en réduisant constamment la portée des données que vous souhaitez obtenir, vous pouvez filtrer les résultats finaux souhaités et, en même temps, transformer des événements aléatoires en événements séquentiels. méthode pour verrouiller les données.

Il en va de même pour la base de données, mais c'est évidemment beaucoup plus compliqué, car elle fait face non seulement à des requêtes équivalentes, mais aussi à des requêtes de plage (>, <, between, in), des requêtes floues (comme ), et les requêtes syndicales ( ou) et ainsi de suite. Comment la base de données doit-elle choisir de résoudre tous les problèmes ?

Repensons à l'exemple du dictionnaire. Pouvons-nous diviser les données en segments puis les interroger en segments ? Le plus simple est que s'il y a 1 000 données, 1 à 100 sont réparties dans la première section, 101 à 200 sont réparties dans la deuxième section, 201 à 300 sont réparties dans la troisième section... De cette façon, pour vérifier la 250ème donnée, il vous suffit de trouver la troisième section La sous-suppression de 90% des données invalides.

Mais s'il s'agit d'un record de 10 millions, en combien de segments faut-il le diviser ? Les étudiants ayant un peu de base en algorithme penseront aux arbres de recherche, dont la complexité moyenne est lgN et ont de bonnes performances de requête. Mais ici, nous avons négligé un problème clé : le modèle de complexité est basé sur le même coût d'exploitation à chaque fois. La mise en œuvre de la base de données est relativement complexe et les données sont enregistrées sur le disque. Afin d'améliorer les performances, une partie des données peut être sauvegardée. lire à chaque fois. Calculez en utilisant la mémoire, car nous savons que le coût d'accès au disque est environ 100 000 fois supérieur à celui de l'accès à la mémoire, donc un simple arbre de recherche ne peut pas répondre à des scénarios d'application complexes.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn