Detaillierte Erläuterung der kombinierten MySQL-Indexmethode

Detaillierte Erläuterung der kombinierten MySQL-Indexmethode

Für jedes DBMS sind die Indizes der wichtigste Optimierungsfaktor. Bei kleinen Datenmengen hat das Fehlen eines geeigneten Indexes keine großen Auswirkungen, bei zunehmender Datenmenge nimmt die Leistung jedoch stark ab.

Wenn Sie mehrere Spalten indizieren (zusammengesetzter Index), ist die Reihenfolge der Spalten sehr wichtig. MySQL kann nur effektiv nach einem Präfix der äußersten linken Spalte des Index suchen. Zum Beispiel:

Angenommen, es gibt einen zusammengesetzten Index (c1, c2). Dann kann die Abfrage select * from t1 where c1=1 and c2=2 diesen Index verwenden. Die Abfrage select * from t1 where c1=1 kann auch diesen Index verwenden. Die Abfrageanweisung select * from t1 where c2=2 kann diesen Index jedoch nicht verwenden, da es keine führende Spalte für den zusammengesetzten Index gibt. Das heißt, um die Spalte c2 für die Suche verwenden zu können, muss c1 einem bestimmten Wert entsprechen.

Zum Beispiel:
Erstellen Sie zwei Tabellen „book“ (Buchtabelle) und „bookclass“ (Buchklassifizierungstabelle).

Wählen Sie b.ISBN AUS Buch b, wobei b.CATEGORY_ID = 1; 

這里寫圖片描述

Ausführungszeit: 0,053 s

Verwenden Sie „explain“, um das SQL zu analysieren:

這里寫圖片描述

Typ = ALLE Extras = Bei Verwendung von „where“ verwendet die vollständige Tabellenabfrage den Index nicht.

EXPLAIN zeigt, wie MySQL Indizes verwendet, um Auswahlanweisungen zu verarbeiten und Tabellen zu verknüpfen. Es kann dabei helfen, bessere Indizes auszuwählen und optimiertere Abfrageanweisungen zu schreiben.

ALLE Für jede Zeilenkombination aus den vorherigen Tabellen wird ein vollständiger Tabellenscan durchgeführt. Dies ist normalerweise schlecht, wenn die Tabelle die erste Tabelle ist, die nicht als „const“ markiert ist, und ist in anderen Fällen normalerweise sehr schlecht. Oft können Sie statt ALL weitere Indizes hinzufügen, sodass Zeilen basierend auf konstanten Werten oder Spaltenwerten in der vorherigen Tabelle abgerufen werden können.

Erstellen Sie einen zusammengesetzten Index:
Erstellen Sie den Index index_isbn für das Buch (CATEGORY_ID, ISBN);

Führen Sie den SQL-Befehl erneut aus und stellen Sie fest, dass sich die Zeit auf 0,009 s verkürzt.

這里寫圖片描述

Verwenden Sie „explain“, um das SQL zu analysieren:

這里寫圖片描述

Typ = Ref., Extra = Index verwenden. Es wird eine Indexabfrage verwendet.

ref Für jede Kombination von Zeilen aus den vorherigen Tabellen werden alle Zeilen mit übereinstimmenden Indexwerten aus dieser Tabelle gelesen. Wenn der Join nur ein ganz linkes Präfix des Schlüssels verwendet oder wenn der Schlüssel weder UNIQUE noch PRIMARY KEY ist (mit anderen Worten, wenn der Join keine einzelne Zeile basierend auf dem Schlüssel auswählen kann), wird „ref“ verwendet. Dieser Verknüpfungstyp ist gut, wenn die verwendeten Schlüssel nur mit einer kleinen Anzahl von Zeilen übereinstimmen.

Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der kombinierten Indexmethode von MySQL. Weitere relevante Inhalte zum kombinierten MySQL-Index finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • MySql-Index verbessert die Abfragegeschwindigkeit allgemeine Methoden Codebeispiele
  • Zusammenfassung mehrerer Situationen, in denen MySQL-Indizes fehlschlagen
  • Detaillierte Erläuterung des MySQL-Clusterindex und des Nicht-Clusterindex
  • Lösungen für Probleme bei der Leistungsoptimierung von MySQL-Indizes
  • Zusammenfassung einiger gängiger Schreibmethoden, die zu MySQL-Indexfehlern führen
  • Verschiedene Arten von MySQL-Indizes
  • MySQL-Performance-Optimierung: So nutzen Sie Indizes effizient und richtig
  • Grundlegende Syntax des MySQL-Index
  • Gründe und Lösungen für die Auswahl des falschen Index durch MySQL

<<:  Linux verwendet die suid vim.basic-Datei, um eine Rechteausweitung zu erreichen

>>:  Vue verwendet OSS zum Hochladen von Bildern oder Anhängen

Artikel empfehlen

Erkennung und Lösung von Vue.$set-Fehlerfallen

Ich habe zufällig festgestellt, dass Vue.$set im ...

Detaillierte Erläuterung der Fallstricke des Nginx-Proxy-Socket.io-Dienstes

Inhaltsverzeichnis Nginx fungiert als Proxy für z...

So passen Sie die Bash-Eingabeaufforderung in Linux an

Vorwort Wie wir alle wissen, ist Bash (die Bourne...

Natives JS zur Realisierung eines einfachen Schlangenspiels

In diesem Artikel wird der spezifische Code von j...

Docker Detaillierte Abbildungen

1. Einführung in Docker 1.1 Virtualisierung 1.1.1...

Einführung in die Verwendung sowie Vor- und Nachteile von MySQL-Triggern

Inhaltsverzeichnis Vorwort 1. Trigger-Übersicht 2...

Zusammenfassung und Praxis des Javascript-Prototyp-Kettendiagramms

Inhaltsverzeichnis Prototypenkette Wir können ein...

So konfigurieren Sie die Linux-Firewall und öffnen die Ports 80 und 3306

Port 80 ist ebenfalls konfiguriert. Geben Sie zun...

Mybatis-Statistiken zur Ausführungszeit jeder SQL-Anweisung

Hintergrund In letzter Zeit werde ich in Intervie...

So richten Sie Referer in Nginx ein, um Bilddiebstahl zu verhindern

Wenn die Bilder des Servers von anderen Websites ...

js Drag & Drop-Tabelle zur Realisierung der Inhaltsberechnung

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung des Prinzips und der Funktion des JavaScript-Closures

Inhaltsverzeichnis Einführung Verwendung von Vers...