Beispiele für die Verwendung von MySQL-Abdeckungsindizes

Beispiele für die Verwendung von MySQL-Abdeckungsindizes

Was ist ein Deckungsindex?

Das Erstellen eines Indexes, der alle in der Abfrage verwendeten Felder enthält, wird als überdeckender Index bezeichnet.

Mit einem überdeckenden Index muss MySQL den Index nur verwenden, um die für die Abfrage erforderlichen Daten zu finden und zurückzugeben, ohne nach der Verarbeitung der Daten mithilfe des Indexes eine Tabellenrückgabeoperation ausführen zu müssen.

Durch das Abdecken von Indizes kann die Abfragearbeit auf einmal abgeschlossen werden, wodurch die IO effektiv reduziert und die Abfrageeffizienz verbessert wird.

Anwendungsbeispiele

Abfrageanweisung:

Wählen Sie Spalte2, Spalte3 aus Testtabelle, wobei Spalte1 = xxx ist. Bestellen Sie nach Spalte2;

Erstellen Sie einen einspaltigen Index:

ALTER TABLE `test_table` ADD INDEX `idx_col1`(`col1`) USING BTREE;

Analyseabfrage:

EXPLAIN SELECT SQL_NO_CACHE col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2;

Ergebnis: Nachdem ein Index für col1 erstellt wurde, ist der Typ „ref“ und der Index idx_col1 wird verwendet.

Ändern Sie den Index und erstellen Sie einen gemeinsamen Index basierend auf der Abfrageanweisung:

ALTER TABLE `test_table` DROP INDEX `idx_col1`;
ALTER TABLE `test_table` ADD INDEX `idx_col1_col2_col3`(`col1`, `col2`, `col3`) USING BTREE;

Analyseabfrage:

EXPLAIN SELECT SQL_NO_CACHE col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2;

Ergebnis: Nachdem der gemeinsame Index erstellt wurde, ist der Typ „ref“, der Index „idx_col1_col2_col3“ wird verwendet und „Extra“ ist „Using-Index“, was darauf hinweist, dass ein überdeckender Index verwendet wird.

Der Unterschied zwischen MySQL-Abdeckungsindex und gemeinsamem Index

Ein überdeckender Index bedeutet, dass die abgefragten Spalten direkt über den Index extrahiert werden können, also beispielsweise nur die Spalten der Primärschlüsselliste abgefragt werden! Oder fragen Sie alle Spalten des gemeinsamen Indexes oder einige Spalten von links beginnend ab (auf die Reihenfolge achten)!

Ein gemeinsamer Index ruft nicht notwendigerweise alle Daten aus dem Index ab; dies hängt von der abgefragten Spalte ab. Beispielsweise ist es unwahrscheinlich, dass die Methode „select * from table where ××××××;“ ein überdeckender Index ist. Wenn also die von Ihnen abgefragten Spalten den gemeinsamen Index verwenden können und die von Ihnen abgefragten Spalten über den gemeinsamen Index abgerufen werden können, z. B. wenn Sie nur die Spalte abfragen, in der sich der gemeinsame Index befindet, oder einen Teil der Spalten, beginnend von links, entspricht dies einem überdeckenden Index. Damit die Abfrage den überdeckenden Index verwenden kann, werden normalerweise mehrere abzufragende Datenspalten als gemeinsamer Index festgelegt.

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung von MySQL-Überdeckungsindizes. Weitere relevante MySQL-Überdeckungsindexinhalte 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 verwendet einen abdeckenden Index, um Tabellenrückgaben zu vermeiden und die Abfrage zu optimieren
  • Zusammenfassung der Wissenspunkte zum Abdecken von Indizes in MySQL
  • So verwenden Sie MySQL zur Abdeckung von Index- und Tabellenrückgabe
  • Detaillierte Erklärung des MySQL-Covering-Index
  • Fallstudie zur Leistungsoptimierung bei MySQL – einschließlich Indexfreigabe
  • Fallstudie zur Leistungsoptimierung von MySQL – einschließlich Index und SQL_NO_CACHE
  • Vorteile von MySQL-Abdeckungsindizes

<<:  Detaillierter Prozess zum Kompilieren und Installieren von Storm auf dem Kylin V10-Server

>>:  So zeigen Sie den Rahmen an, wenn td leer ist

Artikel empfehlen

Detaillierte Erläuterung der Windows-Zeitserver-Konfigurationsmethode

Kürzlich habe ich festgestellt, dass die Serverze...

Der Iframe-Frame setzt den weißen Hintergrund im IE-Browser auf transparent

In letzter Zeit muss ich im Projektverlauf häufig ...

js+css zur Realisierung eines dreistufigen Navigationsmenüs

In diesem Artikelbeispiel wird der spezifische Co...

So überwachen Sie Array-Änderungen in Vue

Inhaltsverzeichnis Vorwort Quellcode Wo beginne i...

Zwei Möglichkeiten, damit IE6 Bilder im PNG-24-Format normal anzeigt

Methode 1: Bitte fügen Sie den folgenden Code nach...

Informationen zur Nginx-GZIP-Konfiguration

Das Prinzip von nginx zur Erzielung einer Ressour...

Implementierungsschritte für die Docker-Bereitstellung lnmp-wordpress

Inhaltsverzeichnis 1. Experimentelle Umgebung 2. ...

Fallstricke basierend auf MySQL-Standardsortierregeln

Der Standardtyp varchar in MySQL ist case-insensi...

Detaillierte Erklärung zur Verwendung von Eslint in Vue

Inhaltsverzeichnis 1. Beschreibung 2. Laden Sie d...

Beispiel für die Verwendung von #include-Dateien in HTML

Es gibt zwei Dateien a.htm und b.htm. Im selben Ve...

js realisiert horizontale und vertikale Slider

Als ich kürzlich an einem Übungsprojekt arbeitete...

Natives JS zur Implementierung eines Hover-Dropdown-Menüs

JS implementiert ein Hover-Dropdown-Menü. Dies is...