博客列表 >MySQL中慢查询日志的知识点整理

MySQL中慢查询日志的知识点整理

jaronHu的博客
jaronHu的博客原创
2017年09月07日 11:22:55715浏览

当用户访问网站反应过慢时,我们通常会通过各种日志来查找慢的原因:nginx,php,mysql 对应的日志,那今天我们就来说一说mysql的慢日志。

第一步查看是否开启慢查询日志(我的已经开启了并提供了路径地址):

show variables like 'slow%';

1.png

接下来就是对日志进行分析了,看哪些sql语句过慢,找到之后再一一进行优化

第二步找到/data/mariadb/mysql-slow.log 并进行分析

mysqldumpslow -r -t 10 /root/mysql-slow.log;#查看top 10 运行最慢的 

03.png

上图是提供的例子

用到这里的时候,我们就会对慢日志进行分析了,哪个sql慢,就能找到原因了。

第三步想要分析就要知道以下两点:

1)mysqldumpslow命令对应的参数有哪些 如何使用

mysqldumpslow是mysql自带的用来分析慢查询的工具

经常使用几个命令

-s ORDER what to sort by (al, at, ar, c, l, r, t), ‘at' is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
-r Reverse the sort order
-s,是order的顺序,主要有

c,t,l,r和ac,at,al,ar,分别是按照query次数,查询时间,lock的时间和返回的记录数来排序,前面加了a的代表平均数
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的

2)返回的结果中,都有哪些信息,分别代表什么意思

主要功能是, 统计不同慢sql的
出现次数(Count),
执行最长时间(Time),
累计总耗费时间(Time),
等待锁的时间(Lock),
发送给客户端的行总数(Rows),
扫描的行总数(Rows),
用户以及sql语句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).

以上就是我对mysql 慢日志的使用和了解,希望对您有帮助,欢迎补充。我是jaron,php程序员一枚。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议