Maison > base de données > tutoriel mysql > Pourquoi MySQL a-t-il besoin d'une indexation ?

Pourquoi MySQL a-t-il besoin d'une indexation ?

(*-*)浩
Libérer: 2020-09-17 09:32:52
original
4678 Les gens l'ont consulté

Parce que les index peuvent rapidement augmenter la vitesse des requêtes ; si les index ne sont pas utilisés, MySQL doit commencer par le premier enregistrement, puis lire la table entière jusqu'à ce que les lignes pertinentes soient trouvées
Plus la table est grande, plus cela prend de temps ; , mais ce n'est pas non plus entièrement.

Cours recommandés : Tutoriel MySQL

Pourquoi MySQL a-t-il besoin d'une indexation ?

Les indices sont des structures de données

Donc ; , En plus des données, le système de base de données conserve également des structures de données qui satisfont des algorithmes de recherche spécifiques. Ces structures de données font référence (pointent vers) les données d'une manière ou d'une autre, afin que des algorithmes de recherche avancés puissent être implémentés sur ces structures de données. Cette structure de données est un index.

Analyse de la structure des données de l'index

Quelle est la structure de cet index ? En d’autres termes, pourquoi cette structure peut-elle améliorer la vitesse de récupération ?

1. S'il n'y a pas d'index, lors de la recherche d'un certain enregistrement (par exemple, la recherche de name='wish'), vous devez rechercher tous les enregistrements, car il n'y a aucune garantie qu'il n'y en ait qu'un seul. souhaitez, et vous devez tous les rechercher.

2. Si un index est créé sur le nom, mysql effectuera une recherche sur la table entière, recherchera la valeur du nom de chaque enregistrement par ordre croissant, puis construira l'index entrée (nom et row_id), stockez-la dans le segment d'index et interrogez lorsque le nom est souhaité. Vous pouvez trouver directement l'endroit correspondant

3. Créer un index ne signifie pas nécessairement qu'il sera utilisé automatiquement. compte les informations de la table et décide d'utiliser ou non l'index. Lorsqu'il y a très peu de données dans la table, la vitesse d'analyse complète de la table est déjà élevée. Bientôt, il n'est plus nécessaire d'utiliser des index.

Exemple de fonctionnement de l'index

Il y a deux champs dans le tableau A

id,name

Il y en a maintenant 10 millions morceaux de données

Exigence : interrogez l'identifiant correspondant en fonction du nom

S'il n'y a pas d'index, vous devez interroger tous les enregistrements de la table et vous devez vérifier les 10 millions morceaux de données un par un, dites-vous lentement ou pas.

Créez maintenant un index basé sur le nom,

structure de la table d'index :

id,name,value
Copier après la connexion

où valeur est l'identifiant de la table A, stocké dans un tableau json (car il y aura plusieurs noms La même situation existe);

Ensuite, le nom peut être trié selon les règles de tri. Selon l'algorithme, la position du nom dans la table d'index peut être directement localisée, puis l'enregistrement avec. l'identifiant du tableau A peut être supprimé.

En bref, en créant un index, vous pouvez accéder directement aux enregistrements du tableau A.

Bien sûr, c'est rapide. Si vous souhaitez interroger la table A, vous devez interroger 10 millions de données. En établissant un index, l'algorithme réduit considérablement le volume des requêtes.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal