注意:
1.設置慢查詢日誌配置的賬號需要數據庫root賬號登錄
2.必須讓mysql用戶對慢查詢日誌有可寫(w=2),上級目錄可執行(x=1)的權限,否則無法開啓慢查詢日誌
3.開啓了慢查詢日誌會記錄所有數據庫符合條件的SQL
配置參數:
long_query_time:執行時間,單位 秒。設置時不需加單位s
slow_query_log_file:慢查詢日誌保存目錄,設置時目錄路徑需要加引號''
slow_query_log:開關慢查詢;ON 開啓;OFF關閉
log_query_not_using_indexse: 記錄所有未使用索引的SQL;ON 開啓;OFF關閉
查看:
# show variables like '參數名';
設置:
# set global 參數名=xx;
使用:
1.# more/cat 慢查詢日誌名
沒有執行次數
用more命令,按空格翻下頁瀏覽。直接瀏覽不會過濾掉同類型重複執行的SQL
屬性:
Time:SQL什麼時候執行的
User@Host:數據庫用戶名@客戶端ip
Query_time:SQL執行時間
Lock_time:鎖時間
Rows_sent:執行成功後返回的行數
Rows_examined:檢索行數
(精度保留到小數點後6位,單位秒)
最下面的是執行的SQL語句
使用MySQL自動的mysqldumpslow工具(mysql安裝目錄/bin/mysqldumpslow)或pt-query-digest工具(下載安裝percona),瀏覽時可自動過濾掉重複的SQL
percona下載安裝說明:https://blog.csdn.net/qq_41912505/article/details/103804591
2.# mysqldumpslow 慢查詢日誌名
沒有檢索行數
屬性:
Count:執行次數
Time:執行時間的最大值(總執行時間)
Lock:鎖時間的最大值(總鎖時間)
Rows:返回的最大行數(總返回行數)
數據庫用戶名@客戶端ip
最下面是執行的SQL語句
3.# pt-query-digest 慢查詢日誌名
屬性:
Query:第幾條SQL
Count:執行次數
Exec time:執行時間
Lock time:鎖時間
Row sent:返回行數
Row examine:檢索行數
(pct:佔總慢查詢比例;total:總和;min:最小;max:最大;avg:平均;95%:大部分;median:中間值)
Databases:數據庫
Hosts:客戶端
Users:數據庫用戶
Query_time distribution:執行時間分佈
Tables:表
EXPLAIN:執行計劃
最下面是執行的SQL語句