要查看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 后面可以写正则表达式匹配,大小写不敏感。
Count:2978 语句出现了2978次;
Time=59.72s(177857s) 执行最长时间为59.72s,累计总耗费时间177857s;
Lock=0.0s(2s) 等待锁最长时间为0s,累计等待锁耗费时间为2s;
Rows=1.0(2857) 发送给客户端最多的行数为1.0,累计发送给客户端的函数为2857;