Zum Inhalt springen
EdgeServers
Blog

MySQL-Slow-Query-Tuning — der EXPLAIN-getriebene Workflow, den wir auf Kundendatenbanken nutzen

26. Mai 2026 · 1 Min. Lesezeit · von Sudhanshu K.

Jedes MySQL-Audit, das wir durchführen, fördert dieselbe Handvoll Query-Antipatterns zutage. Die Fixes sind fast immer klein (ein Index, eine Umschreibung, ein LIMIT), aber sie im großen Stil zu finden, ist der Teil, der Disziplin erfordert. Der Slow Query Log ist der richtige Einstiegspunkt — aber nur, wenn Sie ihn tatsächlich lesen.

Dies ist der EXPLAIN-getriebene Workflow, den wir nutzen, um Slow Queries auf Kundendatenbanken zu triagieren.

Die Slow-Query-Log + pt-query-digest-Schleife

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 0.5
log_slow_admin_statements = 1
log_queries_not_using_indexes = 0    # laut, aus
pt-query-digest /var/log/mysql/slow.log > /tmp/digest.txt
head -100 /tmp/digest.txt

pt-query-digest gruppiert Queries nach Fingerabdruck und sortiert nach Gesamtzeit. Die obersten 10 Fingerabdrücke sind fast immer 80 % des Schmerzes der DB.

Der vollständige Beitrag behandelt:

  • Die 0,5-Sekunden-long_query_time-Schwelle und wann sie zu senken ist
  • EXPLAIN ANALYZE-Ausgabe lesen (untersuchte Zeilen, Key-Wahl, % gefiltert)
  • performance_schema.events_statements_summary_by_digest als Live-Alternative zum Log
  • Die sieben Antipatterns, die wir weiterhin finden (führende Wildcards, OR vs UNION, SELECT *, etc.)
  • Index-Design — Covering Indexes, Präfixlänge auf VARCHAR, Composite-Reihenfolge
  • Wann das Schema fixen vs wann die Query umschreiben

Melden Sie sich, wenn Ihr Slow Log so gewachsen ist, dass niemand ihn mehr öffnet.

Vollständiger Artikel verfügbar

Vollständigen Artikel lesen