慢日志查询
概述:
在生产环境中,如果要手工分析日志、查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具MySQLldumpslow
是什么?
怎么玩?
查看命令:show variables like ‘%slow_query_log%’;
show variables like ‘%slow_query_log%‘;
如何开启慢查询日志:命令:set global slow_query_log=1 开启慢查询日志
那么开启了慢查询日志后,什么样的SQL才会记录到慢日志里面呢??
case(案例):
查看当前查询多少秒算慢
SHOW VARIABLES LIKE‘%long_query_time%‘;
如何设置慢的阙值时间
set global long_query_time=3;
为什么设置后看不出变化:此时需要重新连接或新开一个会话才能看到修改值。
show global variables like ‘long_query_time‘;
查看当前系统中有多少条慢查询记录
具体配置
日志分析工具MySQLdumpslow
查看MySQLldumpslow的帮助信息
s:表示按照任何方式排序;
c:访问次数
l:锁定时间
r:返回记录
t:查询时间
al:平均锁定时间
ar:平均返回记录数
at:平均查询时间
t:即为返回前面多少条的数据
g:后边搭配,一个正则匹配模式,大小写不敏感
常用参考(例如:)
得到返回记录集最多的10个SQL
mysqldumpslow -s r -t 10 /var/lib/mysql/localhost-slow.log
得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /var/lib/mysql/localhost-slow.log
得到按照时间排序的前10条里面含有左连接的查询语句
mysqldumpslow -s t -t 10 -g"left join" /var/lib/mysql/localhost-slow.log
另外建议在使用这些命令时结合 | 和more 使用,否则有可能出现爆屏情况
mysqldumpslow -s r -t 10 /var/lib/mysql/localhost-slow.log |more
原文地址:http://blog.51cto.com/14084624/2320072