Mysql5.5 慢查询 trace的配置(转,针对5.5)
1. 慢查询有什么用?
它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化.
2. 如何开启慢查询?
首先我们先查看MYSQL服务器的慢查询状态是否开启.
连接MYSQL
然后执行如下命令:(我的已开启所以红圈处显示“ON”,未开启显示“OFF”)
开启慢查询非常简单, 操作如下:
方法一: 找到mysql的配置文件my.ini(MySQL\MySQL Server 5.5), 在mysqld下方加入慢查询的配置语句(注意:一定要在[mysqld]下的下方加入, 如果是在[mysqld_safe]下面加入配置语句是不会生效的. 我在配置过程中就犯了这个错误, 亲身体会到了其痛苦!)
log-slow-queries: 代表MYSQL慢查询的日志存储目录, 此目录文件一定要有写权限,.
long_query_time: 最长执行时间. (如图, MSYQL将记录下所有执行时间超过1秒的SQL语句, 此处为测试时间, 时间不应太小最好在5-10秒之内, 当然可以根据自己的标准而定);
- <span style="color:#333333">log-queries-not-using-indexes </span><span style="color:#66ff99"> </span><span style="color:#009900"> #表示记录下没有使用索引的查询</span>
配置好以后重新启动一个MYSQL:
我们再观察一下MySQL\MySQL Server 5.5\目录下面是否自动创建了mysql-slow.log文件.
至此就慢查询配置OK了。
注:不同版本下的MYSQL慢查询需要配置文件会有所不同,我的是5.5
二、不通过配置文件开启慢查询;(这种方法各个版本基本上都可以使用,不用重启,更不需要去找配置文件的位置)
使用DOS命令,进入mysql;
通过DOS命令 开启慢查询“set slow_query_log=ON;”命令打开;(注:不同版本global可需要可不需要自己尝试)
设置输出的格式"select @@global.log_output='FILE';
或set @@global.log_output='TABLE';//设置为库表格式
show create table mysql.slow_log;//慢查询保存到mysql数据的slow_log表中"可以设置默认为TABLE,FILE和TABLE只能同时使用一个。
如果需要改变log_output的值使用“set global log_output='TABLE';即可修改”
设置log文件的存放位置“set slow_query_log_file="保存的路径";”
设置慢查询时间“set long_query_time=5;”这里设置为5s(注:使用set global long_query_time=5可能会设置失败)
Never give up !