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