Mysql5.5 慢查询 trace的配置(转,针对5.5)

Posted AmilyAmily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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秒之内, 当然可以根据自己的标准而定);
[python] view plain copy
 
  1. <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可能会设置失败)  
技术分享

以上是关于Mysql5.5 慢查询 trace的配置(转,针对5.5)的主要内容,如果未能解决你的问题,请参考以下文章

MySql5.5 SQL优化 慢查询日志存储

如何查找MySQL中查询慢的SQL语句

MySQL慢查询日志相关的配置和使用。

MySQL慢查询日志相关的文件配置和使用。

Oracle中有个tkprof来格式化oracle的trace文件

[转]MySQL5.5 my.cnf配置参考