mysql開啓慢查詢日誌及驗證過程

mysql慢查詢

1、慢查詢作用?

它能記錄下所有執行超過long_query_time時間的sql語句,幫你找到執行慢的sql,方便我們對這些sql語句進行優化。

2、如何開啓慢查詢?

首先我們先查看mysql服務器的慢查詢狀態是否開啓。

執行如下指令:

wKiom1coHYDD65rsAAAwCDMf8M4016.png

我們可以看到log_slow_queries狀態爲ON,說明當前已經開啓慢查詢。如果沒有開啓,進行如下操作:

方法一:找到mysql的配置文件my.cnf(/etc/my.cnf),在mysqld下方加入慢查詢的配置語句(注意一定要在[mysqld]的下方添加,如果是在[mysqld_safe]下面加入配置語句是不會生效的. 我在配置過程中就犯了這個錯誤, 親身體會到了其痛苦!)

wKioL1coIKGS_egCAAA2ncDcEGY556.png

log-slow-queries:代表mysql慢查詢的日誌存儲目錄,此目錄文件一定要有寫權限

long_query_time:最長執行時間(如圖,mysql將記錄下所有執行時間超過2秒的sql語句,測試時候時間不應太短);

配置好了以後重新啓動mysql服務,service mysqld restart 

方法二:在mysql命令下執行如下操作:

wKiom1coIfPyBNCEAAAPQSsYTAE774.png

通過set命令來設置mysql變量的狀態,但這個只是臨時生效,重啓服務後就回復原來的狀態。

配置完成後我們來檢查一下狀態,如下圖:

wKioL1coIy_CocRNAAAyzy2LZDA253.png
說明已經開啓了慢查詢服務,並且時間限制爲2秒。

3、慢查詢日誌驗證

我們在觀察一下/var/lib/mysql/目錄下面是否自動創建了mysql-slow.log文件。

wKiom1coIxXgI72XAAA_XEDEn6o597.png

cat mysql-slow.log 發現文件已存在. 只是文件中並沒有任務SQL的記錄. 那麼現在我們測試一下執行一條超過long_query_time的SQL語句.

wKiom1coI2WxcSJnAAAWGqSAoBo865.png

執行完了一個5秒的SQL語句, 不出意外的情況下mysql-slow.log文件中應該記錄下了這條SQL語句. OK! 我們cat mysql-slow.log一下

wKioL1coJQXD5P_hAABJ37QesX0507.png

果然,慢查詢的整個日誌過程配置完成!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章