Frage

Ich frage mich, ob es eine andere Möglichkeit gibt, unsere langsamen Abfragen zu überprüfen, ohne langsame Abfragen zu protokollieren.Angenommen, ich habe einen stark ausgelasteten Server, der es sich nicht leisten kann, viel zu protokollieren, um Speicher und E / A zu sparen.Gibt es dann eine andere Möglichkeit, um zu überprüfen, ob ich eine langsame Abfrage habe?Ich weiß, wir können ein Profiling der Abfrage durchführen, sind uns aber immer noch nicht sicher, was genau zu tun ist, um festzustellen, welche Abfrage die meiste Zeit und den meisten Speicher beansprucht.

Ich habe gerade die MySQL-Administration gestartet und bin mir nicht sicher, wie ich damit umgehen soll.Jede Anleitung wird sehr geschätzt.

War es hilfreich?

Lösung

Wenn Sie das langsame Abfrageprotokoll überhaupt nicht aktivieren möchten, habe ich einen Vorschlag

Sie können verwenden pt-abfrage-digest über ein Zeitintervall.

Ich habe dies einige Male im DBA StackExchange vorgeschlagen

Wenn du meine ansiehst Nov 24, 2011 verknüpfen, Ich habe ein Shell-Skript bereitgestellt, das Sie mit crontab starten können pt-abfrage-digest.

PROBIEREN SIE ES AUS!!!

Andere Tipps

Sie können die folgende Anweisung in einer Schleife in einem Skript ausführen, das die Anweisung alle 10 Sekunden zum Beispiel auslöst.

mysql -e 'SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where time>10 and command<>"Sleep"'

Sie können es anpassen, um Ihnen mehr oder weniger Informationen zu geben, abhängig von der Abfrage, die Sie ausgeben.

generasacodicetagpre.

Um dieselbe Abfrage nicht mehrmals zu speichern, können Sie den Hash der Abfrage als eindeutige Schlüssel verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top