2010-05-14 39 views
11

我慢查詢日誌已滿類似下面的條目:如何「設置時間戳」是一個緩慢的查詢?

# Query_time: 1.016361 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 
SET timestamp=1273826821; 
COMMIT; 

我猜set timestamp命令被複制發行,但我不明白怎麼set timestamp可以接管第二。任何想法如何解決這個問題?

回答

13

Timestamp是MySQL中的一種數據類型和內置函數。你想用以下語句達到什麼目的?

SET timestamp=1273826821; 

UPD:對不起,我不知道該使用MySQL的黑客。

看起來SET TIMESTAMP被用作solution to exclude some queries from the slow log

該OP使用Microslow patch來增強慢查詢日誌中的統計信息,並且該語句在InnoDB表上的語句之前是常見的。

因此,OP的問題的答案是COMMIT語句是慢查詢而不是SET TIMESTAMP

+0

我想他試圖將該值分配給名爲「timestamp」的行? – 2010-05-14 11:59:46

+0

@ Lo'oris:我在我的回答中添加了一些細節。 – newtover 2010-05-14 12:18:17

7

設置時間戳出現在每個慢速查詢日誌中,所以跳過這一行;提交是它出現在慢查詢中的原因;

由於如此多的提交進入慢日誌,數據庫機IO可能成爲問題,因爲IO是提交的瓶頸。

監視DB CPU IO等待值,它不能高於1 /內核數量。例如,如果8個內核,IO等待應該小於12%。

iotop可用於調試哪個進程正在讀取/寫入IO,而iostat可用於監視IO。