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

CSS-Code zum Anordnen von Fotos in Moments

Zunächst können Sie Moments öffnen und mehrere La...

Docker realisiert die Verbindung mit demselben IP-Netzwerksegment

Vor Kurzem habe ich das Problem gelöst, dass Dock...

Vue implementiert Drag-Fortschrittsbalken

In diesem Artikelbeispiel wird der spezifische Co...

So kapseln Sie Timerkomponenten in Vue3

Hintergrund Wenn Sie auf manchen Webseiten von Ei...

Freigabe der schnellen Wiederherstellungslösung für große MySQL-SQL-Dateien

Vorwort Bei der Verwendung einer MySQL-Datenbank ...

So verpacken Sie das Uniapp-Projekt als Desktop-Anwendung

Electron installieren cnpm installiere Electron -...

Der Unterschied zwischen Animation und Übergang

Der Unterschied zwischen CSS3-Animation und JS-An...

Mybatis implementiert Details zum Abfangen und Ändern von SQL-Abfragen

Vorwort Eine der Funktionen eines Interceptors be...

Fünf Richtlinien zum Schreiben von wartungsfreundlichem CSS-Code

1. Fügen Sie am Anfang des Stylesheets einen Komme...

Lernen Sie die MySQL-Zeichensatzeinstellungen in 5 Minuten kennen

Inhaltsverzeichnis 1. Inhaltsübersicht 2. Konzept...

Detaillierte Erklärung des in JavaScript integrierten Date-Objekts

Inhaltsverzeichnis Date-Objekt Erstellen eines Da...