MySQL配置慢查詢日誌及使用說明

注意:

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語句

主優化:執行次數多,且檢索行數遠大於返回行數的SQL

發佈了32 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章