mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过阈值的语句,就是指运行时间超过long_query_time值的sql,会被记录在慢查询日志中。long_query_time的默认值是10,意思是运行10S之上的语句。mysql
慢查询日志的设置sql
show variables like '%slow_query_log%'
set global slow_query_log =1
注:
slow_query_log ON为开启,OFF为关闭
slow_query_log_file 为慢查询日志的存放地址bash
show variables like 'long_query_time%' 设置慢查询日志限制时间 set global long_query_time=4
show variables like 'log_queries_not_using_indexes' set global log_queries_not_using_indexes=1
show global status like '%Slow_queries%';
命令:工具
-s 按照那种方式排序 c:访问计数 l:锁定时间 r:返回记录 al:平均锁定时间 ar:平均访问记录数 at:平均查询时间 -t 是top n的意思,返回多少条数据。 -g 能够跟上正则匹配模式,大小写不敏感。
mysqldumpslow -s r -t 20 sqlslow.log
mysqldumpslow -s ar -t 20 sqlslow.log
mysqldumpslow -s ar -t 20 -g "ttt" sqldlow.log
注:
一、若是出现 -bash: mysqldumpslow: command not found 错误,请执行日志
ln -s /usr/local/mysql/bin/mysqldumpslow /usr/bin
二、若是出现以下错误,Died at /usr/bin/mysqldumpslow line 161, <> chunk 405659.说明你要分析的sql日志太大了,请拆分后再分析 拆分的命令为:code
tail -100000 mysql-slow.log>mysql-slow.20180725.log