Beispielcode für das MySQL-Indexprinzip ganz links

Beispielcode für das MySQL-Indexprinzip ganz links

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:
  • Detaillierte Analyse des ganz links stehenden Übereinstimmungsprinzips des MySQL-Gemeinschaftsindex
  • Detaillierte Erläuterung des MySQL-Kombinationsindex und des ganz links stehenden Übereinstimmungsprinzips
  • Eine kurze Diskussion über MySQL-Index-Designprinzipien und die Unterschiede zwischen gängigen Indizes
  • Ein kurzes Verständnis der drei Prinzipien zum Hinzufügen von MySQL-Indizes
  • Verstehen Sie die Prinzipien der MySQL-Indexerstellung in einem Artikel

<<:  Mehrere Methoden für js zur Bestimmung der horizontalen und vertikalen Bildschirmansichtsfenstererkennung von mobilen Endgeräten

>>:  Die Elementbaumsteuerung integriert ein Dropdown-Menü mit Symbolen (Baum+Dropdown+Eingabe)

Artikel empfehlen

Quellcodeanalyse des Nodejs-Modulsystems

Inhaltsverzeichnis Überblick CommonJS-Spezifikati...

Häufige Probleme und Lösungen beim Erstellen von MySQL MGR

Inhaltsverzeichnis 01 Häufige Fehler 1 02 Häufige...

Das native VIDEO-Tag der HTML-Seite verbirgt die Download-Button-Funktion

Beim Schreiben eines Webprojekts stieß ich auf ei...

Übersicht über die Zeitkonfiguration unter Linux-System

1. Zeitarten werden unterteilt in: 1. Netzwerkzei...

XHTML-Tutorial für den Einstieg: Häufig verwendete XHTML-Tags

<br />Genau wie ein Artikel sollten unsere W...

Was ist SSH? Wie benutzt man? Was sind die Missverständnisse?

Inhaltsverzeichnis Vorwort Was ist SSH? Wofür wir...

Zusammenfassung der Kenntnisse und der Verwendung von Linux-VI-Befehlen

Detaillierte Erklärung des Linux-Befehls vi Der v...

Analyse der Initialisierung des Quellcodes des Linux-Kernel-Schedulers

Inhaltsverzeichnis 1. Einleitung 2. Grundkonzepte...

html+css+js zur Realisierung der Funktion der Fotovorschau und des Bildhochladens

Vorwort: Wenn wir Webseiten erstellen, müssen wir...