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

Beispiel für die Konfiguration von nginx zur Implementierung von SSL

Umgebungsbeschreibung Serversystem: Ubuntu 18.04 ...

Verwendung von Docker-Image-Speicher-Overlays

1. Übersicht Das Image in Docker ist in Schichten...

Erfahren Sie in einem Artikel mehr über TypeScript-Datentypen

Inhaltsverzeichnis Grundtypen jeder Typ Arrays Tu...

Empfehlen Sie einige nützliche Lernmaterialien für Neulinge im Webdesign

Viele Leute haben mich auch gefragt, welche Büche...

So verwenden Sie den Vue-Video-Player für eine Live-Übertragung

Inhaltsverzeichnis 1. Installieren Sie den Vue-Vi...

Navicat: Mehrere Möglichkeiten zum Ändern des MySQL-Datenbankkennworts

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...

Hyperlink-Tag für HTML-Webseiten

Lernprogramm zum Hyperlink-Tag einer HTML-Webseit...

Häufig verwendete HTML-Format-Tags_Powernode Java Academy

1. Titel HTML definiert sechs <h>-Tags: <...

5 Dinge, die beim Schreiben von React-Komponenten mit Hooks zu beachten sind

Inhaltsverzeichnis 01. Verwenden Sie useState, we...