您的位置:首页 > 数据库 > MySQL

mysql 慢查询日志的使用

2015-09-07 16:52 771 查看

一、慢查询有什么用

它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化.

 
二、如何开启慢查询

 
1、先查看MYSQL服务器的慢查询状态是否开启.执行如下命令

show variables like '%quer%';

如果当前log_slow_queries状态为OFF, 说明当前并没有开启慢查询.

 

2、开启慢查询的方法

在mysql的配置文件中的mysqld下方添加以下参数

 
 
log-slow-queries = D:/MySQL/log/mysqld-slow-query.log
long-query-time = 5
#log-long-format
#log-slow-admin-statements
log-queries-not-using-indexes


三、慢查询日志分析

我们可以通过慢查询日志来找出有问题的SQL语句,对其进行优化。随着mysql数据库服务器运行时间的增加,可能会有越来越多的SQL查询被记录到了慢查询日志文件中,这时要分析该文章就显得不是很容易了。

mysql提供的mysqldumpslow命令,可以很方便的对慢查询日志进行分析 

命令行下,进入 mysql/bin 目录,输入 mysqldumpslow ?help  或
--help 
可以看到这个工具的参数

 

其中,参与参数说明

1、-s order,是表示按照何种方式排序,order值有:c、t、l、r 分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒序;
2、-t num,即为返回前面多少条的数据;
3、-g pattern,pattern可以写一个正则匹配模式,大小写不敏感的;

 

例如

1、找出访问次数最多的 20个sql 语句

mysqldumpslow -s c -t 20 host-slow.log

2、和返回记录集最多的 20个sql

mysqldumpslow -s r -t 20 host-slow.log 

3、按照时间返回前 10 条里面含有左连接的 sql 语句

mysqldumpslow -t 10 -s t -g "left join" host-slow.log

4、输出记录次数最多的10条SQL语句

mysqldumpslow -s c -t 10 /database/mysql/slow-log

参考资料: 
mysql 慢查询日志   http://www.studyofnet.com/news/1028.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql