mysql中查詢日誌與慢查詢日誌

2021-08-04 05:56:41 字數 2274 閱讀 5185

一、查詢日誌

查詢日誌記錄mysql中所有的query,通過 「--general-log[=file_name]」來開啟該功能。該功能記錄了所有的query(含select),會影響效能。預設的查詢日誌檔名為: hostname.log。預設情況下是不開啟 查詢日誌的。

檢視是否啟用查詢日誌及 儲存檔案及路徑

二、慢查詢日誌

慢查詢日誌中記錄的是執行時間較長的query, --slow-query-log引數 是控制慢查詢日誌是否開啟的並記錄檔名和儲存的位置,預設檔名為 hostname-slow.log。預設的儲存目錄是資料目錄。  該日誌檔案記錄了語句執行耗時,執行使用者,連線主機等相關資訊。可以用任何文字編輯器檢視其中的內容,mysql提供了專門用來分析慢查詢日誌的工具 mysqlslowdump。

設定慢查詢開啟關閉

slow_query_log =0|1 (0關,1開啟)

設定 慢查詢超時時間

set global long_query_time=1(秒)最小單位微秒

slow_launch_time  (show variables like '%slow%';)   最小單位 秒

slow_launch_threads (show status like '%threads%';)

建立時間超過slow_launch_time的執行緒數。

正常情況下,釋放的連線會快取,即 threads_cached會釋放後增加,在使用後減少,也就是說新的連線會優先使用 cached中的連線,全部使用後再建立新的連線。

可以在程式執行時 執行 show processlist;

如果 sleep時間過長,可以適當調整 wait_timeout.

2.1檢視慢查詢日誌狀態

2.2 停止慢查詢日誌服務,並確認是否關閉

set global slow_query_log=0|off;

show variables like '%slow%';

2.3 重置乙個新的慢查詢日誌檔案路徑

set global slow_query_log_file='/newfilepath/newfile.log';

2.4 開啟慢查詢日誌服務

set global slow_query_log=1|on;

mysqldumpslow 輸出

count :統計不同慢sql的出現次數。

time=0.00s(0s) :執行最長時間(0.00s),累計總耗時時間(0s)

lock=0.00s(0s) :等待鎖的時間(0.00s),等待鎖的總時間(0s);

rows=3.0(5) : 傳送給客戶端的行總數(3.0),掃瞄的行總數(5);

使用者及sql語句。

mysqldumpslow 常用的引數:

-s 排序選項: c 查詢次數  r 返回記錄行數   t 查詢時間  -t n:顯示top n條查詢

不過對於百分比等等資料mysqldumpslow就不夠完善了。所以世界上多了很多各種mysql慢日誌分析工具,比較優秀的有mysqlsla(perl指令碼)和pt-query-digest(perl指令碼),可以提供count, sql的執行次數及佔總的slow log數量的百分比,time, 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間佔到總慢sql時間的百分比,95% of time, 去除最快和最慢的sql, 覆蓋率佔95%的sql的執行時間,lock time, 等待鎖的時間,95% of lock , 95%的慢sql等待鎖時間,rows sent, 結果行統計數量, 包括平均, 最小, 最大數量,rows examined, 掃瞄的行數量,還可以生成表報,儲存分析結果。

pt-query-digest分析慢查詢日誌

mysql慢查詢日誌查詢與分析

mysql下執行show variables like slow query log 上圖我這是本地的mysql,慢查詢沒開。slow query log on和off分別表示慢查詢有沒有開。slow query log file 慢查詢日誌的路徑。開啟日誌 我們可以看到 time 180810 1...

mysql 慢查詢日誌位置 mysql慢查詢日誌

一 開啟慢查詢日誌 1 檢視是否開啟 show variables like slow query log 2 檢視是否開啟記錄未使用索引的查詢 show variables like log queries not using indexes 3 開啟未使用索引的查詢日誌 set global l...

mysql 紀錄慢查詢 mysql慢查詢日誌

mysql慢查詢日誌可以記錄查詢時間過長的sql,對於效能問題定位十分重要,本文旨在介紹慢查詢日誌管理使用。引數1 slow query log on表示慢查詢日誌開啟,off表示慢查詢日誌關閉 2 slow query log file 慢查詢日誌檔案 3 long query time 表示執行...