Vielen MySQL-Benutzern ist der Slow-Query-Log natürlich bekannt und meistens die erste Anlaufstelle um langsame SQL-Queries im System aufzuspüren und in der Einzelanalyse zu optimieren. Interessant sind jedoch die Möglichkeiten die long_query_time, also die Zeit bis zur Ausführung des Statements, zu parametrisieren und die Statements auszugeben, die nicht von einem Index gebrauch machen. Wichtig ist jedoch immer eine längerfristige Beobachtung und Analyse des Systems um Unschärfen oder einmalige “Ausrutscher” zu eliminieren und keine vorzeitigen Schlüsse zu ziehen.
Beim Start des MySQL-Daemons mit dem Parameter “–log-queries-not-using-indexes” werden Statements ohne Verwendung von Indizes ebenfalls protokolliert. Die Anlage des richtigen Indizes ist neben der Aktivierung des Query-Caches meist die einfachste Möglichkeit die Selektionsperformance deutlich zu verbessern.
Zusätzlich kann der Datenbank-Administrator noch seine eigenen Langläufer mit dem Parameter “–log-slow-admin-statements” ausgeben.
Inhalt des nächsten Serienteils ist das Table-Partioning.

0 Responses to “MySQL Performance Serie – Teil 6: Slow-Query-Log”