Wenn Sie eine langsame SELECT …
WHERE
-Anweisung beschleunigen wollen, besteht der
erste Schritt in aller Regel darin, zu überprüfen, ob Sie
einen Index hinzufügen können. Alle Referenzierungen zwischen
verschiedenen Tabellen sollten normalerweise über Indizes
erfolgen. Sie können mit der
EXPLAIN
-Anweisung ermitteln, welche Indizes
für eine SELECT
-Anweisung verwendet werden.
Siehe auch Abschnitt 7.2.1, „EXPLAIN
-Syntax (Informationen über ein
SELECT
erhalten)“, und
Abschnitt 7.4.5, „Wie MySQL Indizes benutzt“.
Hier ein paar allgemeine Tipps zur Beschleunigung von Abfragen
für MyISAM
-Tabellen:
Um MySQL bei der Optimierung von Abfragen zu unterstützen,
verwenden Sie ANALYZE TABLE
oder führen
myisamchk --analyze für eine Tabelle
aus, nachdem Sie die Daten dort eingeladen haben. Hierdurch
wird ein Wert für jeden Indexteil geändert, der die
durchschnittliche Anzahl von Datensätzen angibt, die
denselben Wert haben. (Bei eindeutigen Indizes ist dies
immer 1.) MySQL entscheidet anhand dessen, welcher Index
ausgewählt wird, wenn Sie zwei Tabellen basierend auf einem
nichtkonstanten Ausdruck verknüpfen. Sie können das
Ergebnis der Tabellenanalyse mit SHOW INDEX FROM
und
nachfolgender Überprüfung des Werts
tbl_name
Cardinality
verifizieren.
myisamchk --description --verbose zeigt
Angaben zur Indexverteilung.
Um einen Index und die Daten gemäß diesem Index zu sortieren, verwenden Sie myisamchk --sort-index --sort-records=1 (in diesem Beispiel erfolgt die Sortierung nach Index 1). Dies ist eine gute Möglichkeit, Abfragen zu beschleunigen, wenn Sie einen eindeutigen Index haben, anhand dessen Sie alle Datensätze in der von Index vorgegebenen Reihenfolge auslesen wollen. Beachten Sie, dass, wenn Sie beim ersten Mal eine große Tabelle auf diese Weise sortieren, dies sehr lang dauern kann.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.