標籤:set 最小值 關於 意思 rbo rip 語句 包括 statement
mysql慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄sql執行超過long_query_time秒的SQL語句。long_query_time的最小值和預設值分別為0和10。 意思是運行超過10秒以上的sql語句。該值可以指定為微秒。 對於記錄到檔案,寫入時間包括微秒部分。 為了記錄到表格,唯寫入整數次。 微秒的部分被忽略。預設情況下,慢查詢日誌是被禁用的,要自己手動開啟。
相關參數
slow_query_log [= {0 | 1}]:是否開啟慢查詢日誌,0為關閉,1為開啟。
long_query_time:慢查詢閾值,當查詢時間多於設定的閾值時,記錄日誌。
slow_query_log_file:提定日誌目標。可以不設定該參數,系統則會預設給一個預設的檔案host_name-slow.log
log-output[={FILE|TABLE}]:指定日誌存到檔案,還是表格。
log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日誌中(可選項)。
log-slow-admin-statements:在寫入慢查詢日誌的語句中包含慢管理語句(可選項)。
min_examined_row_limit:檢查少於此行數的查詢不會記錄到慢速查詢日誌中。
慢查詢配置
mysql> show variables like ‘%slow_query_log%‘;+---------------------+----------------------------------------+| Variable_name | Value |+---------------------+----------------------------------------+| slow_query_log | ON || slow_query_log_file | /usr/local/mysql/var/huosuSDK-slow.log |+---------------------+----------------------------------------+2 rows in set (0.00 sec)
slow_query_log的值為OFF表示慢查詢禁用,ON表示慢查詢開啟。
set global slow_query_log=1
全域開啟慢查詢,但mysql如果重啟,為失效。如果要永久生效,得在/ect/my.cnf下配置
log-output=FILE 儲存檔案slow_query_log=1 開啟慢查詢long_query_time=2 時間2秒log_queries_not_using_indexes=1 沒有索引的也記錄
然後重啟mysql。
如果你想查詢有多少條慢查詢記錄,可以使用系統變數。
show global status like ‘%Slow_queries%‘;
也可以用工具官方提供的工具來分析慢查詢
mysqldumpslow
mysqldumpslow解析MySQL慢查詢記錄檔並列印其內容摘要。
通常情況下,mysqldumpslow組查詢除了數字和字串資料值的特定值之外是相似的。 顯示匯總輸出時,將這些值“提取”為N和“S”。 -a和-n選項可用於修改值抽象行為。
像這樣調用mysqldumpslow:
shell> mysqldumpslow [options] [log_file ...]
mysqldumpslow支援以下選項。
Format Description
-a 不要把所有的數字都抽象成N和字串S
-n 至少指定數位抽象數字
--debug 編寫調試資訊
-g 只考慮符合模式的語句
--help 顯示協助資訊並退出
-h 記錄檔名中的伺服器的主機名稱
-i 伺服器執行個體的名稱
-l 不要從總時間中減去鎖定時間
-r 顛倒排序次序
-s 如何排序輸出
-t 僅顯示第一個數字查詢
--verbose 詳細模式
- --help
顯示協助資訊並退出
- -a
不要把所有的數字都抽象成N和字串S
- --debug, -d
編寫調試資訊
- -g pattern
只考慮匹配(grep-style)模式的查詢。
- -h host_name
MySQL伺服器的主機名稱為 -slow.log檔案名稱。 該值可以包含萬用字元。 預設值是(全部匹配)。
- -i name
伺服器執行個體的名稱(如果使用mysql.server啟動指令碼)。
- -l
不要從總時間中減去鎖定時間。
- -n N
抽象號碼中至少有N位元字。
- -r
顛倒排序次序。
- -s sort_type
如何排序輸出。 sort_type的值應該從以下列表中選擇:
- t, at: 按查詢時間或平均查詢時間排序
- l, al: 按鎖定時間或平均鎖定時間排序
- r, ar: 按發送的行或發送的平均行進行排序
- c: 按數量排序
預設情況下,mysqldumpslow按平均查詢時間排序(相當於-s at)。
- -t N
只顯示輸出中的前N個查詢。
- --verbose, -v
詳細模式。 列印關於該程式的更多資訊。
mysql慢查詢日誌