1. 程式人生 > >MySQL之慢查詢日誌

MySQL之慢查詢日誌

查看 慢查詢 more 技術 time 當前 ado png oca

慢日誌查詢
概述:
在生產環境中,如果要手工分析日誌、查找、分析SQL,顯然是個體力活,MySQL提供了日誌分析工具MySQLldumpslow
是什麽?
技術分享圖片

怎麽玩?
技術分享圖片
查看命令:show variables like ‘%slow_query_log%’;
show variables like ‘%slow_query_log%‘;
技術分享圖片
技術分享圖片

如何開啟慢查詢日誌:命令:set global slow_query_log=1 開啟慢查詢日誌
技術分享圖片
技術分享圖片

那麽開啟了慢查詢日誌後,什麽樣的SQL才會記錄到慢日誌裏面呢??
技術分享圖片
case(案例):
查看當前查詢多少秒算慢
SHOW VARIABLES LIKE‘%long_query_time%‘;

如何設置慢的闕值時間
set global long_query_time=3;
為什麽設置後看不出變化:此時需要重新連接或新開一個會話才能看到修改值。
show global variables like ‘long_query_time‘;

查看當前系統中有多少條慢查詢記錄
技術分享圖片
具體配置
技術分享圖片
日誌分析工具MySQLdumpslow
查看MySQLldumpslow的幫助信息
技術分享圖片
s:表示按照任何方式排序;
c:訪問次數
l:鎖定時間
r:返回記錄
t:查詢時間
al:平均鎖定時間
ar:平均返回記錄數
at:平均查詢時間
t:即為返回前面多少條的數據
g:後邊搭配,一個正則匹配模式,大小寫不敏感

常用參考(例如:)
得到返回記錄集最多的10個SQL

mysqldumpslow -s r -t 10 /var/lib/mysql/localhost-slow.log
得到訪問次數最多的10個SQL
mysqldumpslow -s c -t 10 /var/lib/mysql/localhost-slow.log
得到按照時間排序的前10條裏面含有左連接的查詢語句
mysqldumpslow -s t -t 10 -g"left join" /var/lib/mysql/localhost-slow.log
另外建議在使用這些命令時結合 | 和more 使用,否則有可能出現爆屏情況
mysqldumpslow -s r -t 10 /var/lib/mysql/localhost-slow.log |more

MySQL之慢查詢日誌