Wie kann "set timestamp" eine langsame Abfrage?
Meiner slow-query-log ist voll von Einträgen wie den folgenden:
# Query_time: 1.016361 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
SET timestamp=1273826821;
COMMIT;
Ich denke, die set timestamp
- Befehl ausgegeben wird, der von der Replikation aber ich verstehe nicht, wie set timestamp
kann über eine Sekunde. Irgendwelche Ideen, wie man dieses Problem beheben?
InformationsquelleAutor Peder | 2010-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Timestamp
ist ein Datentyp und eine eingebaute Funktion in MySQL. Was sind Sie versuchen zu erreichen mit der folgenden Anweisung?UPD: tut mir Leid, ich wusste nicht, über die verwendet MySQL-hacks.
Scheint es, dass
SET TIMESTAMP
wird als Lösung um einige Abfragen aus dem slow log.Die OP ist mit dem Microslow patch zur Verbesserung der stat-info im slow-query-log, und die Anweisung wird verbreitet, bevor Aussagen über InnoDB-Tabellen.
So, die Antwort auf Ops Frage ist, dass die
COMMIT
Erklärung ist die langsame Abfrage und nicht dieSET TIMESTAMP
.Ich Hinzugefügt einige details zu meiner Antwort.
InformationsquelleAutor newtover
set timestamp wird in jedem slow-query-log, so überspringen Sie diese Zeile; commit ist der Grund, warum es scheint in slow-query;
Da so viele Begehen, kam in slow-log, den Automaten der db IO kann das problem sein, da IO ist der Engpass für die Begehung.
Monitor DB CPU-IO-wait-Wert, die können nicht höher sein als 1/Anzahl der Kerne. Zum Beispiel, wenn 8 Kerne, IO warten sollte weniger als 12%.
iotop kann verwendet werden, um den debug-Prozess Lesen/schreiben der IO und dem iostat-Befehl kann verwendet werden, zu überwachen IO.
InformationsquelleAutor samuel