mysql慢查詢
1、慢查詢作用?
它能記錄下所有執行超過long_query_time時間的sql語句,幫你找到執行慢的sql,方便我們對這些sql語句進行優化。
2、如何開啓慢查詢?
首先我們先查看mysql服務器的慢查詢狀態是否開啓。
執行如下指令:
我們可以看到log_slow_queries狀態爲ON,說明當前已經開啓慢查詢。如果沒有開啓,進行如下操作:
方法一:找到mysql的配置文件my.cnf(/etc/my.cnf),在mysqld下方加入慢查詢的配置語句(注意一定要在[mysqld]的下方添加,如果是在[mysqld_safe]下面加入配置語句是不會生效的. 我在配置過程中就犯了這個錯誤, 親身體會到了其痛苦!)
log-slow-queries:代表mysql慢查詢的日誌存儲目錄,此目錄文件一定要有寫權限
long_query_time:最長執行時間(如圖,mysql將記錄下所有執行時間超過2秒的sql語句,測試時候時間不應太短);
配置好了以後重新啓動mysql服務,service mysqld restart
方法二:在mysql命令下執行如下操作:
通過set命令來設置mysql變量的狀態,但這個只是臨時生效,重啓服務後就回復原來的狀態。
配置完成後我們來檢查一下狀態,如下圖:
3、慢查詢日誌驗證
我們在觀察一下/var/lib/mysql/目錄下面是否自動創建了mysql-slow.log文件。
cat mysql-slow.log 發現文件已存在. 只是文件中並沒有任務SQL的記錄. 那麼現在我們測試一下執行一條超過long_query_time的SQL語句.
執行完了一個5秒的SQL語句, 不出意外的情況下mysql-slow.log文件中應該記錄下了這條SQL語句. OK! 我們cat mysql-slow.log一下
果然,慢查詢的整個日誌過程配置完成!