Maison >base de données >tutoriel mysql >Tri des données d'index MySQL
L'article précédent vient de présenter brièvement plusieurs structures et méthodes de stockage de B-TREE, mais la relation entre l'index et les données ne semble toujours pas connectée
Donc, dans cet article, à travers le véritable exemple de. lignes de données. Après avoir créé l'index, quel est l'ordre dans lequel elles sont triées sur le B TREE.
1. Simuler et créer des données originales
Dans la figure ci-dessous, le côté gauche contient les données simulées pour ma commodité. Le moteur est mysiam~
Le côté droit est un tableau de données de simulation normale après les avoir disposées aléatoirement à l'aide d'EXCEL. Les clés primaires sont ensuite disposées selon 1-27 (si ce n'est pas aléatoire, je l'écrirai dedans. ordre lors de la simulation des données. L'ajout d'un index rend difficile la visualisation du processus de tri des index)
En d'autres termes, les données de droite, de sorte que les données originales que nous voulons tester, ont été triées comme ceci auparavant. l'index a été construit et toutes les données suivantes sont triées par Ceci est fait selon les normes, afin que vous puissiez mieux voir l'effet de tri après la génération de l'index.
La table comporte 4 champs (id, a, b, c), avec un total de 27 lignes de données
2. Créer l'index a
Comme le montre la figure ci-dessous, après avoir créé l'index a, la structure de l'index passe du tri d'origine en fonction de l'ID de clé primaire à une nouvelle règle. Nous disons que l'index est en fait une structure de données. Créez ensuite l'index a, qui consiste à créer une nouvelle structure, triez selon les règles du champ a, la première ligne de données représentée par l'ID de clé primaire est 1, la deuxième ligne de données représentée par ID=3 et la troisième ligne de données représenté par la ligne de données ID = 5. . .
Nouvel ID de clé primaire de tri (l'ID représente leur ligne de données) : 1 3 5 6 9 16 18 23 26 2 10 11 12 13 14 15 20 25 4 7 8 17 19 21 22 24 27
Il n'est pas difficile de constater que lorsque le champ a est le même, ils sont disposés en fonction de l'ID de clé primaire avant et après l'arrangement . Par exemple, la même valeur est a=1.1, Mais leur ordre est la valeur ID 1, 3, 5, 6. . Les lignes correspondantes sont triées dans un ordre similaire à celui de l'ID de clé primaire. (C'est-à-dire le tri lorsque la même valeur est utilisée, le plus petit identifiant est devant)
Créer un index (a, b)
. comme indiqué ci-dessous, lors de la création d'une union Après l'indexation (a, b), dans la structure d'index, le tri d'origine selon l'ID de clé primaire est devenu une nouvelle règle. La règle de tri trie d'abord selon le champ a, puis. tri selon le champ b basé sur a. Autrement dit, en fonction de l'index a, le champ b est également trié.
Nouvel ID de clé primaire de tri (l'ID représente leur ligne de données) : 6 18 23 10 15 20 7 22 27 1 3 26 2 11 25 4 8 24 5 9 16 12 13 14 17 19 21
Il n'est pas difficile de constater que lorsque les valeurs des champs a et b sont les mêmes, leur disposition est également déterminé par l'ID de clé primaire Déterminé, par exemple, la même ligne (18,6,23) avec a=1.1 et b=2.1, mais leur ordre est 6,18,23.
Indice de champ (a,b), trié d'abord par un index, puis en fonction de a, trié par b
6 18 23 10 15 20 7 22 27 1 3 26 2 11 25 4 8 24 5 9 16 12 13 14 17 19 21
4. Créer un index (a,b,c)
champ (a,b , c) Index, trier d'abord par a, b index, puis en fonction de (a, b), trier par c
Nouvel ID de clé primaire de tri (représenté par ID Data pour leur ligne): 23 6 18 15 20 10 27 22 7 1 26 3 11 2 25 24 4 8 5 16 9 12 14 13 17 19 21
5. >
C'est la même chose que l'article précédent Mysql-Index-BTree Type [Simplifié], Arbre B-TREE Le la dernière rangée de nœuds feuilles est disposée de gauche à droite dans cet ordre. Différents index sont dans des ordres différents. Avec la commande, la recherche ne serait-elle pas beaucoup plus pratique et plus rapide ?
On sait que le processus de lecture des données (équivalent au processus de recherche d'une chambre), s'il existe un index (table d'enregistrement de salle), lisez d'abord la structure de données de l'index (car il contient de petites données et est rapide à lire), trouvez l'emplacement de stockage du disque physique réel dans le nœud feuille de sa structure (équivalent à trouver le numéro de la maison), puis accédez au disque avec le numéro de la maison et obtenez les données directement. Il s'agit d'un processus de lecture de données. S’il n’y a pas d’index, cela signifie que vous ne connaissez pas la destination. Recherchez simplement de pièce en pièce.
Lorsqu'il n'y a pas d'index, l'ID de clé primaire est en fait leur index, classé selon les règles de l'ID de clé primaire du petit au grand
Lorsqu'il y a un index, l'index a, index conjoint (a, b ), l'index conjoint (a, b, c) correspond aux trois structures B TREE, et les disques physiques pointés par l'extrémité des nœuds feuilles sont différents.
Conclusion :
1 Si aucun index n'est établi, il est classé par ordre croissant selon la clé primaire ID
2. . Lorsque l'index a est établi, un nouvel index structurel (B TREE) sera généré pour enregistrer une nouvelle règle structurelle afin de faciliter la recherche rapide
3 Lors de la création de l'index a, de l'index ab, de l'index abc, des données correspondantes. le tri des trois d'entre eux est différent
4. L'index abc prend en compte à la fois l'index ab et l'index a, donc lorsque le premier est disponible, les deux derniers n'ont pas besoin d'être créés
5. Lorsqu'un index est établi, les colonnes non indexées sont triées par ID croissant par défaut
Plus de conclusions : Résumé de l'index Mysql : http:// blog. .csdn.net/ty_hf/article/details/53526405
Lorsqu'une nouvelle donnée est insérée, lors du stockage des données, une copie de cette table sera également être conservé. Indexez-le et placez-le dans un endroit approprié. Cela explique pourquoi les index peuvent avoir des effets négatifs lorsque la quantité de données est particulièrement importante. INSERT et DELETE sur la table indexée deviendront plus lents. L'insertion et la suppression fréquentes de données prendront également du temps dans la maintenance de l'index. ? 500W ? A vérifier.
Ce qui précède est le contenu du tri des données Mysql-index. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !