Vorwort Ich habe kürzlich etwas über MySQL-Indizes gelesen. Als ich den kombinierten Index sah, fand ich ein Prinzip ganz links. Ich habe es eingehend untersucht, indem ich nach relevanten Informationen gesucht habe. Werfen wir einen Blick auf die ausführliche Einführung. Erstellen einer Tabelle CREATE TABLE `Benutzer` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(10) DEFAULT NULL, `sex` tinyint(1) DEFAULT NULL, `Alter` tinyint(2) DEFAULT NULL, Primärschlüssel (`id`), SCHLÜSSEL `Index_user` (`Name`,`Alter`) MIT BTREE ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; Testen von SQL Der erste mysql> erklären SELECT * FROM `user` where name="tom" \G *************************** 1. Reihe *************************** ID: 1 select_type: EINFACH Tabelle: Benutzer Partitionen: NULL Typ: ref mögliche Schlüssel: Index_Benutzer Schlüssel: Index_user Schlüssellänge: 43 Verweis: const Reihen: 1 gefiltert: 100,00 Extra: NULL Der Zweite mysql> erklären SELECT * FROM `user` where age=18 and name="tom" \G *************************** 1. Reihe *************************** ID: 1 select_type: EINFACH Tabelle: Benutzer Partitionen: NULL Typ: ref mögliche Schlüssel: Index_Benutzer Schlüssel: Index_user Schlüssellänge: 45 Verweis: konstant, konstant Reihen: 1 gefiltert: 100,00 Extra: NULL Der dritte mysql> erklären SELECT * FROM `user` where age=18 \G *************************** 1. Reihe *************************** ID: 1 select_type: EINFACH Tabelle: Benutzer Partitionen: NULL Typ: ALLE mögliche Schlüssel: NULL Schlüssel: NULL key_len: NULL Ref: NULL Reihen: 3 gefiltert: 33,33 Extra: Verwenden von „where“ 1 Zeile im Satz, 1 Warnung (0,00 Sek.) Der vierte mysql> erklären SELECT * FROM `user` where name="tom" und age=18 \G *************************** 1. Reihe *************************** ID: 1 select_type: EINFACH Tabelle: Benutzer Partitionen: NULL Typ: ref mögliche Schlüssel: Index_Benutzer Schlüssel: Index_user Schlüssellänge: 45 Verweis: konstant, konstant Reihen: 1 gefiltert: 100,00 Extra: NULL 1 Zeile im Satz, 1 Warnung (0,00 Sek.) Zusammenfassen Daraus ist ersichtlich, dass nur Abfragen, bei denen die Where-Klausel von SQL das erste Feld des gemeinsamen Indexes enthält, den Index treffen können. Dies wird als am weitesten links stehende Übereinstimmungsfunktion des Indexes bezeichnet. Die Verwendung gemeinsamer Indizes hat nichts mit der Reihenfolge zu tun, in der die Where-Bedingungen geschrieben werden. Die MySQL-Abfrageanalyse wird optimiert und der Index wird verwendet. Um jedoch den Druck auf den Abfrageanalysator zu verringern, ist es am besten, die Reihenfolge des Index von links nach rechts beizubehalten. Die Datenelemente des b+-Baums sind zusammengesetzte Datenstrukturen. Wenn beispielsweise (Name, Alter, Geschlecht) verwendet wird, erstellt der b+-Baum den Suchbaum der Reihe nach von links nach rechts. Wenn beispielsweise Daten wie (Zhang San, 20, W) abgerufen werden, vergleicht der b+-Baum zuerst den Namen, um die nächste Suchrichtung zu bestimmen. Wenn die Namen gleich sind, werden Alter und Geschlecht nacheinander verglichen, um schließlich die abgerufenen Daten zu erhalten. Wenn jedoch Daten wie (20, W) ohne Namen gefunden werden, weiß der b+-Baum nicht, welcher Knoten im ersten Schritt überprüft werden soll, da der Name der erste Vergleichsfaktor ist, wenn der Suchbaum erstellt wird. Es ist notwendig, zuerst basierend auf dem Namen zu suchen, um zu wissen, wo als nächstes abgefragt werden soll. Das ist alles für diesen Artikel. Ich hoffe, dass der Inhalt dieses Artikels für Ihr Studium oder Ihre Arbeit von gewissem Referenzwert ist. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
>>: Die Elementbaumsteuerung integriert ein Dropdown-Menü mit Symbolen (Baum+Dropdown+Eingabe)
Inhaltsverzeichnis Überblick Ist die Erweiterung ...
Inhaltsverzeichnis Überblick CommonJS-Spezifikati...
Der Installationsprozess von VMware wird nicht de...
Inhaltsverzeichnis 01 Häufige Fehler 1 02 Häufige...
Beim Schreiben eines Webprojekts stieß ich auf ei...
Ergebnis: Implementierungscode: Muss mit der Swip...
1. Zeitarten werden unterteilt in: 1. Netzwerkzei...
<br />Genau wie ein Artikel sollten unsere W...
Inhaltsverzeichnis Vorwort Was ist SSH? Wofür wir...
Detaillierte Erklärung des Linux-Befehls vi Der v...
Inhaltsverzeichnis 1. Einleitung 2. Grundkonzepte...
Standardmäßig werden Breite und Höhe der Zelle au...
Vorwort: Wenn wir Webseiten erstellen, müssen wir...
Installieren Sie Apache aus der Quelle 1. Laden S...
Der Umfang der Konfigurationsanweisungen von ngin...