Mysql慢查询配置

Posted 入门小站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql慢查询配置相关的知识,希望对你有一定的参考价值。

查看系统慢sql是否开启

//慢查询时间阈值
> show variables like '%long_query_time%';

//查看慢查询配置情况
> show status like '%slow_queries%';

// 查看慢日志路径
> show variables like '%slow%';

开启慢日志

set global slow_query_log=On;
set global long_query_time=1; //设置查看时间超过1秒的查询被记录到日志
> select sleep(10)

查看统计结果

系统中自带的mysqldumpslow

mysqldumpslow常用命令

  • -s,表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序(从大到小),ac、at、al、ar表示相应的倒序。
  • -t,是top n的意思,即为返回前面多少条数据。
  • -g,后边可以写一个正则匹配模式,大小写不敏感。

查出被记录次数最多的10条语句

> mysqldumpslow -s c -t 10  /var/lib/mysql/ap1azrap472-slow.log

查出返回记录数最多的10条语句

> mysqldumpslow -s r -t 10 /var/lib/mysql/ap1azrap472-slow.log

按照时间查询前10条带有左链接的Sql语句

> mysqldumpslow -s t -t 10 -g 'left join' /var/lib/mysql/ap1azrap472-slow.log

Mysql5.7配置慢查询

通过set global的形式改变配置,只是临时有效, Mysql重启后将失效,永久生效还需要在/etc/my.cnf配置。

> vim /etc/my.cnf

[mysqld]
slow_query_log=On
slow_query_log_file=/var/log/mysql/slow.log
# 单位是秒
long_query_time=2 

> service mysqld restart