MySql:慢日志:如何开启慢日志?如何分析?
一、MySQL如何开启 慢查询?
1、修改配置文件,开启慢日志
Window:my.ini
Linux:my.cnf
添加配置:
#定义慢查询日志的路径:
log-slow-queries=xxx/mysql_slow_query.log
#来定义查过多少秒的查询算是慢查询
long_query_time=5
2、验证mysql慢查询是否开启
show variables like ‘%slow%’;
执行结果会把是否开启慢查询、慢查询的秒数、慢查询日志等信息。
二、模拟慢查询
可以通过如下语句模拟:
SELECT SLEEP(10);
三、分析慢日志
1、查看慢查询的数量通过如下sql语句,来查看一共执行过几次慢查询:
show global status like ‘%slow%’;
2、获取、分析慢日志文件
mysqldumpslow 慢日志分析工具命令:
-s:按照那种方式排序
c:访问计数
l:锁定时间
r:返回记录
al:平均锁定时间
ar:平均访问记录数
at:平均查询时间
-t:top n,也就是返回前n条数据
-g:正则匹配模式
得到返回记录最多的20个:
sqlmysqldumpslow -s r -t 20 sqlslow.log
得到平均访问次数最多的20条:
sqlmysqldumpslow -s ar -t 20 sqlslow.log
得到平均访问次数最多,并且里面含有 xxx字符的20条sqlmysqldumpslow -s ar -t 20 -g “xxx” sqldlow.log
注:
1、如果出现 -bash: mysqldumpslow: command not found 错误,请执行ln -s /usr/local/mysql/bin/mysqldumpslow /usr/bin
2、如果出现如下错误,Died at /usr/bin/mysqldumpslow line 161, <> chunk 405659.说明你要分析的sql日志太大了,请拆分后再分析
拆分的命令为:tail -100000 x.log>x.log