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 文件
改语句就记录了下来