mysql 优化--定位慢查询

来源:互联网 发布:学matlabgui编程的意义 编辑:程序博客网 时间:2024/04/30 20:53

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 文件

改语句就记录了下来


0 0