So verwenden Sie Indizes zur Optimierung von MySQL ORDER BY-Anweisungen

So verwenden Sie Indizes zur Optimierung von MySQL ORDER BY-Anweisungen

Tabelle erstellen und Index erstellen

Tabelle tbl1 erstellen (
id int unique, sname varchar(50),
Index tbl1_index_sname(sname desc)
);

Syntax zum Erstellen eines Indexes für eine vorhandene Tabelle

Erstellen Sie einen [eindeutigen|Volltext|räumlichen] Indexindexnamen für den Tabellennamen (Feldname [Länge] [aufsteigend|absteigend]);

MySQL kann Indizes auch verwenden, um Sortier- und Gruppierungsvorgänge in ORDER BY- und GROUP BY-Anweisungen schnell durchzuführen.

Optimieren Sie MySQL ORDER BY-Anweisungen durch Indexoptimierung:

1. ORDER BY-Indexoptimierung

Wenn eine SQL-Anweisung wie folgt lautet:

SELECT [Spalte1], [Spalte2], …. FROM [TABLE] ORDER BY [sortieren];

Indem Sie einen Index für die Spalte [Sortieren] erstellen, können Sie den Index zum Optimieren der Sortierung verwenden.

2. Indexoptimierung von WHERE + ORDER BY

Wie zum Beispiel:

SELECT [Spalte1], [Spalte2], … FROM [TABLE] WHERE [SpalteX] = [Wert] ORDER BY [Sortieren];

Erstellen Sie einen gemeinsamen Index (Spalte X, Sortieren), um eine Sortierung durch Optimierung zu erreichen.

Hinweis: Wenn Spalte X mehreren Werten entspricht, kann die folgende Anweisung den Index nicht verwenden, um die Reihenfolge zu optimieren:

SELECT [Spalte1], [Spalte2], …. FROM [TABLE] WHERE [SpalteX] IN ([Wert1], [Wert2], …) ORDER BY [Sortieren];

3. WHERE + mehrere Felder ORDER BY

SELECT * FROM [Tabelle] WHERE uid=1 ORDER x,y LIMIT 0,10;

Das Erstellen eines Indexes (uid, x, y) zur Optimierung der Sortierung ist viel besser als das Erstellen eines Indexes (x, y, uid).

MySQL Order By kann keine Indizes verwenden, um die Sortierung zu optimieren

1. Führen Sie ORDER BY für verschiedene Indexschlüssel aus: (erstellen Sie Indizes für Schlüssel1 und Schlüssel2 separat)

AUSWÄHLEN * AUS t1 ORDER BY Schlüssel1, Schlüssel2;

2. Führen Sie ORDER BY für nicht zusammenhängende Indexschlüsselteile aus: (erstellen Sie einen gemeinsamen Index für Schlüsselteil1 und Schlüsselteil2; erstellen Sie einen Index für Schlüssel2)

SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;

3. Verwenden von ASC und DESC: (key_part1, key_part2 erstellen einen gemeinsamen Index)

SELECT * FROM t1 ORDER BY Schlüsselteil1 DESC, Schlüsselteil2 ASC;

4. Der Indexschlüssel, der zum Suchen von Datensätzen verwendet wird, ist nicht derselbe wie der für ORDER BY: (Schlüssel1 und Schlüssel2 werden separat indiziert)

SELECT * FROM t1 WHERE key2=constant ORDER BY key1;

5. Wenn Sie Ausdrücke (Funktionen) auf WHERE- und ORDER BY-Spalten anwenden, können Sie zur Optimierung der Sortierung keine Indizes verwenden.

SELECT * FROM t1 ORDER BY YEAR(Anmeldedatum) LIMIT 0,10;

Besondere Tipps:

1>MySQL kann jeweils nur einen Index verwenden. Wenn Sie Indizes für mehrere Felder verwenden möchten, erstellen Sie einen zusammengesetzten Index.

2> Bei einer ORDER BY-Operation verwendet MySQL den Index nur, wenn die Sortierbedingung kein Abfragebedingungsausdruck ist.

Oben sind die Details, wie MySQL Indizes verwendet, um ORDER BY-Sortieranweisungen zu optimieren. Weitere Informationen zur Optimierung von ORDER BY-Sortieranweisungen durch MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Einführung in die MySQL Order By-Syntax
  • MySQL versteht kurz, wie "order by" funktioniert
  • Detaillierte Erläuterung der Verwendung und Optimierung von MySQL Order by-Anweisungen
  • Analyse von zwei Ideen zur Verbesserung der Abfrageeffizienz der Order by-Anweisung in MySQL
  • Detaillierte Analyse der Order-By- und Group-By-Sequenzprobleme in MySQL
  • MySQL-Datenbank-Indexreihenfolge durch Sortierung – detaillierte Erklärung

<<:  Mehrere Lösungen für domänenübergreifende Gründe in der Webentwicklung

>>:  Detailliertes Tutorial zum Aufbau eines lokalen Ideenaktivierungsservers

Artikel empfehlen

Vier Möglichkeiten, CSS und HTML zu kombinieren

(1) Jedes HTML-Tag hat ein Attribut style, das CS...

So erstellen Sie mit Docker ein Basisimage der Python-Laufzeitumgebung

1. Vorbereitung 1.1 Laden Sie das Python-Installa...

Globale Aufrufimplementierung von Vue2.x Picker auf mobilen Endgeräten

Inhaltsverzeichnis Was ist die Picker-Komponente ...

Theorie: Die zwei Jahre User Experience

<br />Es ist nicht länger als zwei Jahre her...

Eingebettetes Transplantations-Docker-Fehlerproblem (Zusammenfassung)

Nach einer langen Zeit der Transplantation und In...

Vergleich mehrerer Beispiele zur Einfügungseffizienz in MySQL

Vorwort Aus beruflichen Gründen musste ich kürzli...

Zusammenfassung verschiedener Methoden zur JS-Datentyperkennung

Inhaltsverzeichnis Hintergrund Welche Methoden gi...

Detaillierter Prozess der Installation von Jenkins-2.249.3-1.1 mit Docker

Inhaltsverzeichnis 1. Docker installieren 2. Zieh...

Details zur MySQL-Datenbankarchitektur

Inhaltsverzeichnis 1. MySQL-Architektur 2. Netzwe...

Implementierung eines Docker-Cross-Host-Netzwerks (Overlay)

1. Docker-Cross-Host-Kommunikation Zu den hostübe...

So stellen Sie Gitlab schnell mit Docker bereit

1. Laden Sie das Gitlab-Image herunter Docker-Pul...

Beispielcode zum Erstellen von Desktop-Anwendungen mit Vue + Electron

1.vue-Verpackung Hier verwenden wir den Befehl „v...

Tutorial zur MySQL-Optimierung: Große Paging-Abfrage

Inhaltsverzeichnis Hintergrund LIMIT-Optimierung ...