在/etc/my.cnf中配置
# log
slow-query-log = on #开启MySQL慢查询功能
slow_query_log_file = /data/mysql/slow.log #设置MySQL慢查询日志路径
long_query_time = 3 #修改为记录3秒内的查询,默认不设置此参数为记录10秒内的查询
log-queries-not-using-indexes = on #记录未使用索引的查询
image.png
查看slow.log的方式,例如查看几个G大小的log文件时,怎么去查看
采样日志内容, 如:tail -n 100000 slow.log > analytics.log
主要步骤:1)采样慢日志内容,找到sql语句 2)explain 分析sql语句,根据需要添加索引 3)迁移日志
mysqldumpslow slow.log | less
mysqldumpslow基本使用
参数解释
-s, 是表示按照何种方式排序
c: 访问计数
l: 锁定时间
r: 返回记录
t: 查询时间
al:平均锁定时间
ar:平均返回记录数
at:平均查询时间
-t, 是top n的意思,即为返回前面多少条的数据;
-g, 后边可以写一个正则匹配模式,大小写不敏感的;
基本用法