日期:2014-05-16  浏览次数:20640 次

(转)linux下开启mysql慢查询,分析查询语句一,为什么要开启这个查询呢?
linux下开启mysql慢查询,分析查询语句一,为什么要开启这个查询呢?

数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了。mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找出这些语句,分析原因,加以优化。这也是发这篇博文的原因

二,开启mysql的慢查询

方法1,用命令开启慢查询

查看复制打印?
1.mysql> show variables like "%long%";         //查看一下默认为慢查询的时间10秒  
2.+-----------------+-----------+  
3.| Variable_name   | Value     |  
4.+-----------------+-----------+  
5.| long_query_time | 10.000000 |  
6.+-----------------+-----------+  
7.1 row in set (0.00 sec)  
8. 
9.mysql> set global long_query_time=2;          //设置成2秒,加上global,下次进mysql已然生效  
10.Query OK, 0 rows affected (0.00 sec)  
11. 
12.mysql> show variables like "%slow%";          //查看一下慢查询是不是已经开启  
13.+---------------------+---------------------------------+  
14.| Variable_name       | Value                           |  
15.+---------------------+---------------------------------+  
16.| log_slow_queries    | OFF                             |  
17.| slow_launch_time    | 2                               |  
18.| slow_query_log      | OFF                             |  
19.| slow_query_log_file | /usr/local/mysql/mysql-slow.log |  
20.+---------------------+---------------------------------+  
21.4 rows in set (0.00 sec)  
22. 
23.mysql> set slow_query_log='ON';                        //加上global,不然会报错的。  
24.ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL  
25.mysql> set global slow_query_log='ON';            //启用慢查询  
26.Query OK, 0 rows affected (0.28 sec)  
27. 
28.mysql> show variables like "%slow%";              //查看是否已经开启  
29.+---------------------+---------------------------------+  
30.| Variable_name       | Value                           |  
31.+---------------------+---------------------------------+  
32.| log_slow_queries    | ON                              |  
33.| slow_launch_time    | 2                         &nbs