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

80 Zeilen Code zum Schreiben eines Webpack-Plugins und Veröffentlichen auf npm

1. Einleitung Ich habe vor Kurzem die Prinzipien ...

Node.js erstellt ein einfaches Crawler-Case-Tutorial

Vorbereitung Zuerst müssen Sie nodejs herunterlad...

Vermeiden Sie den Missbrauch zum Lesen von Daten in Vue

Inhaltsverzeichnis Vorwort 1. Der Prozess der Ver...

MySQL query_cache_type-Parameter und Verwendungsdetails

Der Zweck der Einrichtung eines MySQL-Abfragecach...

Lösung für den Fehler „MySQL-Server ist verschwunden“

MySQL-Server hat Problem in PHP behoben 1. Hinter...

Vue + Element UI realisiert Ankerpositionierung

In diesem Artikelbeispiel wird der spezifische Co...

So verwenden Sie den VIM-Editor unter Linux

Als leistungsstarker Editor mit umfangreichen Opt...

Beispiel zum Einbetten von H5 in die Webansicht des WeChat-Applets

Vorwort WeChat-Miniprogramme bieten neue offene F...

Tutorial zur Installation und Konfiguration von msmtp und mutt für Raspberry Pi

1. Installieren Sie mutt sudo apt-get install mut...

Detaillierte Erläuterung der MySQL-Sicherung und -Wiederherstellung

Vorwort: In den vorherigen Artikeln wurde die Ver...

Führen Sie die folgenden Schritte aus, damit Docker Images abrufen kann

1. Docker Pull zieht das Image Wenn Sie zum Abruf...