Für MySQL gibt es zwar etliche Tools zur Performance-Analyse, aber auch mit einfachen Mitteln wie tcpdump/Wireshark kann man sich behelfen.
Zunächst schneiden wir mit tcpdump die Daten der MySQL-Verbindung mit:

# tcpdump -s 0 -w mysql.pcap -i any port 3306

Zu beachten ist dabei, dass MySQL standardmäßig auf seinen Unix-Socket verbindet, wenn man als MySQL-Host „localhost“ verwendet. Dieses Problem lässt sich umgehen, indem man stattdessen zu „127.0.0.1 verbindet.
Nachdem wir unsere Queries mitgeschnitten haben, können wir die .pcap-Datei in Wireshark öffnen. Über Statistics -> IO Graph lassen sich dann entsprechende Graphen generieren:
mysql-wireshark
Über die Filter können wir uns Graphen zu bestimmten Queries generieren. Beispielsweise:

  • mysql.query matches „SELECT*“
  • mysql.query matches „INSERT*“
  • mysql.query matches „UPDATE*“
  • mysql.query matches „SELECT*FROM „
  • mysql.query == „BEGIN“ || mysql.query == „COMMIT“