mysql慢查詢日志
1.慢查詢日志
主要用來發(fā)現mysql語句執(zhí)行慢的語句
建議需要檢查的時候開啟
2.查看配置
//查看慢查詢時間
show variables like "long_query_time";//默認10s
//查看慢查詢配置情況
show status
//查看慢查詢日志路徑
show variables like "%slow%";
3.臨時開啟慢查詢日志
set global slow_query_log=on;
檢查是否開啟
show variables like '%slow%';
slow_query_log | ON |
在mysql的data目錄下出現slow.log日志文件
ps:mysql 重新啟動后自動關閉
4.通過sql語句檢查
select sleep(10);
在slow.log日志中出現。
5.關閉慢查詢日志
set global slow_query_log=off;
或者重新啟動mysql
6.永久開啟慢查詢
//記錄查詢慢的sql語句
log-slow-queries = E:/mysqllog/slow.log
//慢查詢時間
long_query_time=0.5
7.查看慢查詢日志的工具
mysqlsla
簡單實用:
Slow log: mysqlsla -lt slow slow.log
mysqlsla常用參數說明:
1) -log-type (-lt) type logs:
通過這個參數來制定log的類型,主要有slow, general, binary, msl, udl,分析slow log時通過制定為slow.
2) -sort:
制定使用什么參數來對分析結果進行排序,默認是按照t_sum來進行排序。
t_sum:按總時間排序
c_sum:按總次數排序
c_sum_p: sql語句執(zhí)行次數占總執(zhí)行次數的百分比。
3) -top:
顯示sql的數量,默認是10,表示按規(guī)則取排序的前多少條
4) –statement-filter (-sf) [+-][TYPE]:
過濾sql語句的類型,比如select、update、drop.
[TYPE]有SELECT, CREATE, DROP, UPDATE, INSERT,例如"+SELECT,INSERT",不出現的默認是-,即不包括。
5) db:要處理哪個庫的日志
選項說明:
總查詢次數 (queries total), 去重后的sql數量 (unique)
輸出報表的內容排序(sorted by)
最重大的慢sql統計信息, 包括 平均執(zhí)行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.
Count, sql的執(zhí)行次數及占總的slow log數量的百分比.
Time, 執(zhí)行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執(zhí)行時間.
Lock Time, 等待鎖的時間.
95% of Lock , 95%的慢sql等待鎖時間.
Rows sent, 結果行統計數量, 包括平均, 最小, 最大數量.
Rows examined, 掃描的行數量.
Database, 屬于哪個數據庫
Users, 哪個用戶,IP, 占到所有用戶執(zhí)行的sql百分比
Query abstract, 抽象后的sql語句
Query sample, sql語句