2017-06-29 68 views
0

我剛剛遇到一個非常有用的功能,它是slow_query_log,用於檢查運行緩慢的查詢。我設法以下鏈接來執行的CMD命令:如何檢查項目的slow_query?

https://www.a2hosting.com/kb/developer-corner/mysql/enabling-the-slow-query-log-in-mysql

是一個項目文件夾內創建日誌文件,並在其中發現沒有問題,所以應該沒有慢查詢。

但是我想了解這個slow_query_log檢查,每數據庫,每項目

如果我想檢查特定項目的緩慢查詢應該輸入什麼命令? slow_query thingy如​​何知道我的項目中列出了所有的查詢,因此查詢運行的是什麼?

請向我解釋這一部分。

這是我如何執行在CMD命令:

cd C:/wamp/bin/mysql/mysql5.7.14/bin 
mysql -u myusername-p 
enter password: mypassword 
SET GLOBAL slow_query_log = 'ON'; 
SET GLOBAL long_query_time = 5; 
SET GLOBAL slow_query_log_file = 'C:/wamp/www/myproject/slow_query/log.php'; 

然後我退出CMD,並返回類型,mysql SELECT SLEEP(6);

我發現在slow_query/log.php文件

以下

wampmysqld,版本:5.7.14(MySQL社區服務器(GPL))。 TCP端口:3306,命名管道:與開始 /tmp/mysql.sock時間
id命令參數

+1

日誌是全球性的慢查詢日誌中的Percona的博客更多有用的信息,但你可以像'grep'過濾。出於好奇,爲什麼要登錄。 ** php **? –

+0

@AlexBlex我簡單地用php擴展名來命名。不知道我是否應該保存其他任何擴展名。請告知。 – 112233

+0

https://en.wikipedia.org/wiki/Filename_extension –

回答

1

,最好的辦法是使用慢速查詢分析器。

我發現最好的是Percona的pt-query-digest它使你能夠以許多不同的方式過濾和分析緩慢的日誌。這個工具包含在Percona's Toolkit裏面,它有很多用於MySQL DBA的有用工具。

現在我假設你想過濾每個模式/數據庫的日誌(項目它是MySQL中的一個外部概念),如果是的話你會使用pt-使用--filter '($event->{db} || "") =~ m/mydb/'選項進行查詢摘要,其中mydb是要過濾的數據庫。

你可以讀到這樣this one

+0

感謝您的詳細解釋。請幫助啓發我多一點。因此,爲了檢查哪個查詢運行緩慢,我需要運行一個接一個的查詢? – 112233

+0

慢查詢日誌向它的文件寫入任何查詢,其中long_query_time秒以及有用的信息,它不關心數據庫或項目。您只能在分析書面文件時過濾它。如果您想了解查詢運行緩慢的原因,那麼您需要查看EXPLAIN命令。 – Jimmy