2017-06-12 3 views
0

Wir planen, das Legacy-System neu zu schreiben, das die MySQL InnoDB-Datenbank verwendet, und versuchen, Engpässe zu analysieren, die in der nächsten Version vermieden werden sollten.MySQL InnoDB Sperrstatistik

Das System hat viele Dienste/Jobs, die über Nacht laufen, die Daten generieren - Einfügungen/Updates, die hauptsächlich optimiert werden sollten. Jobs läuft im Durchschnitt. 2-3 Stunden jetzt. Wir haben bereits lange laufende Abfragen gesammelt, die optimiert werden müssen.

Aber ich frage mich, ob es möglich ist, Informationen und Statistiken über lange laufende Transaktionen zu sammeln.

Sehr hilfreich ist die Information, welche Tabellen per Transaktion am meisten gesperrt sind - durchschnittliche Sperrzeit, Sperrtyp, Perioden.

Kann jemand ein Tool oder Skript empfehlen, das solche Informationen sammeln kann? Oder vielleicht jemand kann eigene Erfahrung in Datenbank-Analyse und Optimierung teilen?

+0

'SHOW ENGINE INNODB STATUS;' gibt Ihnen einiges davon, aber es ist nicht so nützlich wie das Slowlog. –

Antwort

1

MySQL ist in der Lage, "langsame" Abfragestatistiken zu erfassen (aber um ein genaues Bild zu erhalten, müssen Sie den langsamen Schwellwert auf 0 setzen). Sie können das Protokoll mit mysqldumpslow (gebündelt mit mysql) in nützliche Informationen verwandeln. Ich mag das Percona-Toolkit, aber es gibt viele andere Tools.

+0

Genauer gesagt: mysqldumpslow -s-t oder pt-query-Digest. –