您好,登錄后才能下訂單哦!
本文主要給大家介紹如何使用mysql慢查詢日志,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下如何使用mysql慢查詢日志吧。
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 詳細模式
看完以上關于如何使用mysql慢查詢日志,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。