2011-11-09 75 views
5

我想知道是否有辦法阻止在mysql慢查詢日誌中出現單個查詢。防止在慢查詢日誌中出現單個查詢

一個可以執行查詢(通過設置一個全局變量)其實之前禁用日誌記錄,並使其在查詢後回來,但這會阻止其他線程記錄爲好,這是不可取的。

你有什麼想法嗎?

+2

爲什麼?不斷提醒這件事是件好事。解決這個問題的方法是讓查詢運行得更快。 :-) PS:如果查詢只適度緩慢,您可以調整「慢」的定義以將其排除。 – Thilo

+1

「爲什麼?」的答案有些查詢註定要緩慢並且沒問題,因爲它們是由機器人深夜執行的:-)還有其他查詢由PHP前端執行,這很重要。 –

+0

是的,但它是否出現在日誌中?你可以忽略它們。擺弄「慢速查詢」功能來抑制一些事情可能會使其壓制太多。 – Thilo

回答

5

在MySQL 5.1和更高版本,可以在運行時更改了哪些查詢記錄在慢速查詢日誌的時間閾值。將其設置爲可笑的高度,並且查詢不可能被記錄。

SET SESSION long_query_time = 20000; 
SELECT ...whatever... 
SET SESSION long_query_time = 2; 

假設2是您使用的正常閾值。

+0

謝謝,我會試試看。 –

0

我不知道你是否能出現在慢查詢日誌獸醫預科單查詢,但你可以使用從查詢日誌grepped輸出。話雖如此,如果我沒有記錯的話,每一個緩慢的查詢都會以多行的形式被轉儲出來,所以它不會很容易被清除,但並非不可能。

mysqldumpslow有一個「-g pattern」選項來「只考慮匹配(grep-style)模式的查詢。」這可能有助於你的情況。

我希望這會有所幫助。

乾杯 Tymek