-- 預設關閉,預設情況下slow_query_log的值為off,表示慢查詢日誌是禁用的,
show variables like '%slow_query_log%'
; set global slow_query_log=1;
-- 重啟服務失效
show variables like '%long_query_time%'
;-- 預設10秒
set global long_query_time=
0.1;
-- 設定後需要重啟客戶端
--說明:
-- 假如執行時間正好等於long_query_time的情況,並不會被記錄下來。
-- 也就是說,在mysql原始碼裡是判斷大於long_query_time,而非大於等於。
永久生效的設定方式:
修改配置檔案my.cnf(其它系統變數也是如此) ,[mysqld]下增加或修改引數,然後重啟mysql伺服器。
slow_query_log =
1# 慢查詢日誌的存放路徑:預設 [host_name]
-slow.log
slow_query_log_file=
/var/lib/mysql/atguigu-slow.log
long_query_time=
3log_output=file
select * from emp;
select * from emp where deptid >
1;
show global status like '%slow_queries%'
;
vim /var/lib/mysql/atguigu-slow.log
在生產環境中,如果要手工分析日誌,查詢、分析sql,顯然是個體力活,mysql提供了日誌分析工具mysqldumpslow。退出mysql命令列,執行以下命令:
-- 檢視mysqldumpslow的幫助資訊
mysqldumpslow --help
-- 工作常用參考
-- 得到返回記錄集最多的10個sql
mysqldumpslow -s r -t 10
/var/lib/mysql/atguigu-slow.log
-- 得到訪問次數最多的10個sql
mysqldumpslow -s c -t 10
/var/lib/mysql/atguigu-slow.log
-- 得到按照時間排序的前10條裡面含有左連線的查詢語句
mysqldumpslow -s t -t 10
-g "left join"
/var/lib/mysql/atguigu-slow.log
-- 另外建議在使用這些命令時結合 | 和more 使用 ,否則有可能出現爆屏情況
mysqldumpslow -s r -t 10
/var/lib/mysql/atguigu-slow.log | more
-t: 即為返回前面多少條的資料;
-g: 後邊搭配乙個正則匹配模式,大小寫不敏感的;
查詢擷取分析
show variables like slow query log set global slow query log 1 show variables like long query time set global long query time 0.1 show processlist kil...
14 查詢擷取分析
mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long query time值的sql。long query time的預設值為10,意思是執行10秒以上的語句。預設情況下slow query log的值為off,表示慢查詢日...
mysql 擷取查詢分析
1.1 是什麼 1 mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具 體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。2 具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。...