[+/-]
EXPLAIN
-Syntax (Informationen über ein
SELECT
erhalten)SELECT
-AnweisungenWHERE
-KlauselIS NULL
-OptimierungDISTINCT
LEFT JOIN
und RIGHT
JOIN
ORDER BY
-OptimierungGROUP BY
-OptimierungLIMIT
-OptimierungINSERT
-AnweisungenUPDATE
-AnweisungenDELETE
-Anfragen
Zunächst einmal gibt es einen Faktor, der sich auf alle
Anweisungen auswirkt: Je komplexer Ihre Berechtigungskonfiguration
ist, desto höher ist der Aufwand für MySQL. Die Verwendung
einfacherer Berechtigungen beim Absetzen von
GRANT
-Anweisungen gestattet MySQL eine
Verringerung der berechtigungsbedingten Mehrbelastung, wenn
Clients Anweisungen ausführen. Wenn Sie beispielsweise keine
Berechtigungen auf Tabellen- oder Spaltenebene gewähren, muss der
Server keinerlei Überprüfung der Tabellen
tables_priv
und columns_priv
durchführen. Analog ist auch keine Ressourcenzählung
durchzuführen, wenn Sie die Ressourcen für kein Konto
beschränken. Wenn Sie eine sehr hohe Auslastung durch die
Anweisungsverarbeitung haben, kann es lohnenswert sein, eine
vereinfachte Gewährungsstruktur zu verwenden, um die
Mehrbelastung durch die Überprüfung von Berechtigungen zu
verringern.
Hängt Ihr Problem mit einem bestimmten MySQL-Ausdruck oder einer
MySQL-Funktion zusammen, dann können Sie eine Timingprüfung
durchführen, indem Sie die Funktion
BENCHMARK()
mithilfe des Clientprogramms
mysql aufrufen. Die Syntax lautet
BENCHMARK(
.
Der Rückgabewert ist immer null, aber mysql
gibt eine Zeile aus, die näherungsweise die Ausführungsdauer der
Anweisung angibt. Zum Beispiel:
loop_count
,expression
)
mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.32 sec)
Dieses Ergebnis wurde mit einem Pentium II-System (400 MHz) ermittelt. Es zeigt, dass MySQL auf diesem System 1.000.000 einfache Additionsausdrücke in 0,32 Sekunden ausführen kann.
Eigentlich sollten alle MySQL-Funktionen hochgradig optimiert
sein, aber es gibt unter Umständen ein paar Ausnahmen.
BENCHMARK()
ist ein hervorragendes Tool, um zu
ermitteln, ob irgendeine Funktion für Ihre Abfragen problematisch
sein könnte.
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.