1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
MySQL-Abfragen optimieren
Dieser Leitfaden wurde entwickelt, um Ihnen zu helfen, Ihre Datenbanken bei Infomaniak zu entlasten und zu optimieren.
Vorwort
- Die Anzahl und die Größe der Datenbanken sind unbegrenzt.
- Es ist jedoch entscheidend, Ihre Tabellen (über Indizes) zu optimieren, um eine Überlastung des Servers zu vermeiden und eine schnelle Anzeige Ihrer Website zu gewährleisten, insbesondere wenn das Datenvolumen zunimmt.
Abfragen optimieren
Indizes sind für die Leistung unerlässlich: Sie funktionieren wie das Inhaltsverzeichnis eines Buches und ermöglichen es MySQL/MariaDB, eine Information zu finden, ohne alle Seiten zu lesen. Ohne Indizes muss der Server einen "vollständigen Scan" der Tabelle durchführen, was sehr ressourcenintensiv ist.
Ein Index ist besonders effektiv bei Spalten, die zum Filtern der Ergebnisse (Klausel WHERE), zum Durchführen von Verbindungen zwischen Tabellen (JOIN) oder zum Sortieren der Daten (ORDER BY) verwendet werden.
Analysieren mit EXPLAIN
Bevor Sie einen Index hinzufügen, müssen Sie die langsame Abfrage identifizieren. Der Befehl EXPLAIN (auch über die phpMyAdmin-Oberfläche verfügbar) ermöglicht es, die Abfrage zu simulieren.
Beobachten Sie die Spalte "rows" (Anzahl der analysierten Zeilen) und die Spalte "key" (verwendeter Schlüssel). Wenn "rows" hoch ist und "key" leer (NULL) ist, wird dringend empfohlen, einen Index zu erstellen.
Indizes hinzufügen
Um einen Index hinzuzufügen, können Sie die Registerkarte "Struktur" von phpMyAdmin oder den folgenden SQL-Befehl verwenden:
ALTER TABLE nom_de_table ADD INDEX nom_index (colonne_cible);Hinweis: Indexieren Sie nur die notwendigen Spalten. Zu viele Indizes können das Hinzufügen oder Ändern von Daten (INSERT/UPDATE) verlangsamen.
Mehr erfahren / Referenzen
MySQL 8.0-Dokumentation: Optimierung und Indizes
MySQL 8.0-Dokumentation: EXPLAIN verstehen