在/etc/my.cnf中配置
# log
slow-query-log = on #開啟MySQL慢查詢功能
slow_query_log_file = /data/mysql/slow.log #設(shè)置MySQL慢查詢?nèi)罩韭窂?long_query_time = 3 #修改為記錄3秒內(nèi)的查詢庆捺,默認(rèn)不設(shè)置此參數(shù)為記錄10秒內(nèi)的查詢
log-queries-not-using-indexes = on #記錄未使用索引的查詢
查看slow.log的方式,例如查看幾個(gè)G大小的log文件時(shí)屁魏,怎么去查看
采樣日志內(nèi)容滔以, 如:tail -n 100000 slow.log > analytics.log
主要步驟:1)采樣慢日志內(nèi)容,找到sql語句 2)explain 分析sql語句氓拼,根據(jù)需要添加索引 3)遷移日志
mysqldumpslow slow.log | less
mysqldumpslow基本使用
參數(shù)解釋
-s, 是表示按照何種方式排序
c: 訪問計(jì)數(shù)
l: 鎖定時(shí)間
r: 返回記錄
t: 查詢時(shí)間
al:平均鎖定時(shí)間
ar:平均返回記錄數(shù)
at:平均查詢時(shí)間
-t, 是top n的意思醉者,即為返回前面多少條的數(shù)據(jù);
-g, 后邊可以寫一個(gè)正則匹配模式披诗,大小寫不敏感的;
基本用法
例:
得到返回記錄集最多的10個(gè)SQL立磁。
mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log
得到訪問次數(shù)最多的10個(gè)SQL
mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log
得到按照時(shí)間排序的前10條里面含有左連接的查詢語句呈队。
mysqldumpslow -s t -t 10 -g “l(fā)eft join” /database/mysql/mysql06_slow.log
另外建議在使用這些命令時(shí)結(jié)合 | 和more 使用 ,否則有可能出現(xiàn)刷屏的情況唱歧。
mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more
mysqlsla 分析慢查詢?nèi)罩?/h4>
1.mysqlsla下載
網(wǎng)上找
1.mysqlsla安裝
下載下來的包扔到某個(gè)目錄下:
tar zxvf mysqlsla-2.03.tar.gz #解壓
cd mysqlsla-2.03 #進(jìn)入安裝目錄
perl Makefile.PL #配置
make #編譯
make install #安裝
Count, sql的執(zhí)行次數(shù)及占總的slow log數(shù)量的百分比.
Time, 執(zhí)行時(shí)間, 包括總時(shí)間, 平均時(shí)間, 最小, 最大時(shí)間, 時(shí)間占到總慢sql時(shí)間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執(zhí)行時(shí)間.
Lock Time, 等待鎖的時(shí)間.95% of Lock , 95%的慢sql等待鎖時(shí)間.Rows sent, 結(jié)果行統(tǒng)計(jì)數(shù)量, 包括平均, 最小, 最大數(shù)量.
Rows examined, 掃描的行數(shù)量.
Database, 屬于哪個(gè)[數(shù)據(jù)庫]
Users, 哪個(gè)用戶,IP, 占到所有用戶執(zhí)行的sql百分比
Query abstract, 抽象后的sql語句
Query sample, sql語句
https://zhuanlan.zhihu.com/p/106405711
mysql 5.7 版本中的sys庫中的 statement_analysis表格式化存了所有慢查詢sql語句宪摧。
說明schema_index_statistics的作用:查看每個(gè)索引的使用情況
table_schema: sys # 索引的庫
table_name: sys_config # 索引的表
index_name: PRIMARY # 對(duì)應(yīng)的索引
rows_selected: 0 # 執(zhí)行次數(shù)
select_latency: 0 ps # 查詢次數(shù) 和時(shí)間
rows_inserted: 0 #
insert_latency: 0 ps
rows_updated: 0
update_latency: 0 ps
rows_deleted: 0
delete_latency: 0 ps