Wenn mysqld mit der Option
--log-slow-queries[=
gestartet wird, schreibt es eine Logdatei mit allen
SQL-Befehlen, deren Ausführung länger gedauert hat als durch
file_name
]long_query_time
(in Sekunden) angegeben. Die
Zeit zum Erwirken der ersten Tabellensperren wird dabei nicht
als Ausführungszeit berücksichtigt. Der Mindestwert von
long_query_time
ist 1.
Wird kein file_name
-Wert angegeben,
dann wird als Name der Datei standardmäßig der Name des
Hostcomputers gefolgt von -slow.log
gewählt.
Wenn ein Dateiname zwar angegeben ist, jedoch nicht als
absoluter Pfadname, dann schreibt der Server die Datei in das
Datenverzeichnis.
Eine Anweisung wird in das Log für langsame Abfragen geschrieben, nachdem sie abgeschlossen wurde und alle Sperren aufgehoben wurden. Die Reihenfolge, in der die Anweisungen ins Log geschrieben werden, kann sich mithin von der Ausführungsreihenfolge unterscheiden.
Das Log für langsame Abfragen kann zum Ermitteln von Abfragen verwendet werden, deren Ausführung sehr lange dauert und die deswegen für Optimierungen prädestiniert sind. Allerdings kann die Überprüfung dieses Logs eine recht schwierige Aufgabe sein. Um sie zu vereinfachen, können Sie das Log für langsame Abfragen mit dem Befehl mysqldumpslow verarbeiten, um Abfragen zusammenzufassen, die im Log erscheinen.
Bei MySQL 5.1 werden langsame Abfragen, die keine
Indizes verwenden, im Log für langsame Abfragen aufgezeichnet,
wenn die Option --log-queries-not-using-indexes
angegeben wurde. See Abschnitt 5.2.1, „Befehlsoptionen für mysqld“.
Bei MySQL 5.1 können Sie mit der Serveroption
--log-slow-admin-statements
festlegen, dass
langsame administrative Anweisungen wie OPTIMIZE
TABLE
, ANALYZE TABLE
und
ALTER TABLE
ebenfalls in das Log für
langsame Abfragen geschrieben werden.
Abfragen, die vom Abfrage-Cache verarbeitet werden, werden im Log für langsame Abfragen nicht aufgezeichnet. Gleiches gilt für Abfragen, die vom Vorhandensein eines Index nicht profitieren würden, da die Tabellen keinen oder nur einen Datensatz umfasst.
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.