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

mysql 优化--定位慢查询

2017-01-04 11:36 441 查看
MySQL慢查询配置

1. 慢查询有什么用?

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

2. 如何开启慢查询?

首先我们先查看MySQL服务器的慢查询状态是否开启.执行如下命令:

show variables like '%quer%';

我们可以看到当前log_slow_queries状态为OFF, 说明当前并没有开启慢查询.

开启慢查询非常简单, 操作如下:

在[mysqld]中添加如下信息:

  log-slow-queries="D:/phpstudy/MySQL/log/mysql-slow.log"

  long_query_time = 1

  log-queries-not-using-indexes

  log-slow-queries: 代表MYSQL慢查询的日志存储目录, 此目录文件一定要有写权限;

  Windows下需要写绝对路径,如:log-slow-queries="C:/Program Files/MySQL/MySQL   Server 5.5/log/mysql-slow.log"

                                                   这里是:    D:/phpstudy/MySQL/log/mysql-slow.log

 long_query_time: 最长执行时间. (如图, MSYQL将记录下所有执行时间超过2条的SQL语句,  此处为测试时间, 时间不应太小最好在5-10秒之内, 当然可以根据自己的标准而定);

 log-queries-not-using-indexes    :没有使用到索引的查询也将被记录在日志中

   慢查询会影响mysql的运行速度

  此时mysql下的log文件下 文件中会出现一个文件



如果在mysql.ini中设置了时间就不用看了!

那么我们再次查询还量表中的数据之后

sql语句会不会记录到该文件中去;因为mysql中的默认记录查询语句时间为10s

我们怎么看呢?

下面我们可以在进入mysql模式下输入

show variables;



这里显示的就是mysql 中的详细变量具体可以去查询mysqlk 手册

这是我们输入慢查询变量时间的语句

show variables like 'long_query_time';



如果在mysql.ini中设置了这里就不用再次设置了

设置查询时间为1s

 set long_query_time=1;



我们再次查询语句



此时大于1秒

打开我们的log 文件



改语句就记录了下来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: