mysql慢查询分析

要查看mysql的慢查询日志,首先要打开mysql的慢查询记录。

查看mysql慢查询记录是否开启,

mysql>  show variables like 'slow_query%';
+---------------------+--------------------------------+
| Variable_name       | Value                          |
+---------------------+--------------------------------+
| slow_query_log      | ON                             |
| slow_query_log_file | /var/log/mysql/mysql-slow.log |
+---------------------+--------------------------------+
slow_query_log ON 表示开启了慢查询记录
slow_query_log_file 表示慢查询日志文件记录的位置
mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 2.000000 |
+-----------------+----------+

表示查询超过2秒的计算是慢查询,将被记录到慢查询日志里面。

如何分析慢查询日志呢?

mysql自带了分析慢查询日志的工具mysqldumpslow

mysqldumpslow –s c –t 10 slow-query.log

具体参数设置如下:

-s 表示按何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;

-t 表示top的意思,后面跟着的数据表示返回前面多少条;

-g 后面可以写正则表达式匹配,大小写不敏感。


QQ截图20180601113842.png

Count:2978            语句出现了2978次;

Time=59.72s(177857s)  执行最长时间为59.72s,累计总耗费时间177857s;

Lock=0.0s(2s)           等待锁最长时间为0s,累计等待锁耗费时间为2s;

Rows=1.0(2857) 发送给客户端最多的行数为1.0,累计发送给客户端的函数为2857;


猜你喜欢

转载自blog.51cto.com/xinsir/2122937