Mysql慢查询日志过程

1, see the slow log status;

 

mysql> show variables like ‘%slow%’;
+———————+——————————————+
| Variable_name       | Value                                    |
+———————+——————————————+
| log_slow_queries    | ON                                       |
| slow_launch_time    | 2                                        |
| slow_query_log      | ON                                       |
| slow_query_log_file | /mysqllog/slow_log/slow_queries_3306.log
|
+———————+——————————————+
4 rows in set (0.00 sec)

mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出代码实现中耗费资源的sql语句,对我们程序的优化有很高的参考。本篇主要将慢查询日志的开启,日志分析,这也是优化SQL程序的一般步骤中至关重要的一步。 

2, stop the slow log server.

  www.2cto.com  

mysql> set global slow_query_log=0;
Query OK, 0 rows affected (0.27 sec)

1.mysql慢查询日志 

mysql> show variables like ‘%slow%’;
+———————+——————————————+
| Variable_name       | Value                                    |
+———————+——————————————+
| log_slow_queries    | OFF                                      |
| slow_launch_time    | 2                                        |
| slow_query_log      | OFF                                      |
| slow_query_log_file | /mysqllog/slow_log/slow_queries_3306.log
|
+———————+——————————————+
4 rows in set (0.00 sec)

         
打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上 

mysql>
mysql> show variables like ‘%slow%’; — check slow log status
+———————+——————————————+
| Variable_name       | Value                                    |
+———————+——————————————+
| log_slow_queries    | OFF                                      |
| slow_launch_time    | 2                                        |
| slow_query_log      | OFF                                      |
| slow_query_log_file | /mysqllog/slow_log/slow_queries_3306.log
|
+———————+——————————————+
4 rows in set (0.00 sec)

Java代码  

3, reset the new path of slow log

log-slow-queries=mysql_slow.log  

mysql> set global
slow_query_log_file=’/mysqllog/slow_log/slow_queries_3306_new.log’;
Query OK, 0 rows affected (0.03 sec)

long_query_time=3  

4, start the slow log server

 

mysql>
mysql>
mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.01 sec)

         
其中log-slow-queries为日志的文件名,可以指定目录,如log-slow-queries=D:\mysql_slow.log;
long_query_time为定义多长的查询我们定义为慢查询,并记录在log-slow-queries
指定的文件中,在这里我们定义超过3秒的查询进行记录。 

mysql> show variables like ‘%slow%’;
+———————+———————————————-+
| Variable_name       | Value                                       
|
+———————+———————————————-+
| log_slow_queries    | ON                                          
|
| slow_launch_time    | 2                                           
|
| slow_query_log      | ON                                          
|
| slow_query_log_file |
/mysqllog/slow_log/slow_queries_3306_new.log |
+———————+———————————————-+
4 rows in set (0.00 sec)

          配置完成以后重启Mysql服务器,执行show variables like
‘%slow%’;查看慢查询日志是否开启,如果slow_query_log和log_slow_queries显示为on,那说明服务器的慢查询日志已
            www.2cto.com  

5, check the slow sql in the new slow log file.

          经开启了。如下显示: 

mysql> select sleep(10) as a, 1 as b;
+—+—+
| a | b |
+—+—+
| 0 | 1 |
+—+—+
1 row in set (10.00 sec)

Java代码  

mysql>
[mysql@xxx-xxx ~]$ more
/mysqllog/slow_log/slow_queries_3306_new.log
……
Time                 Id Command    Argument
# Time: 140213  6:44:24
# User@Host: root[root] @ localhost []
# Query_time: 10.000365  Lock_time: 0.000000 Rows_sent: 1 
Rows_examined: 0
SET timestamp=1392273864;
select sleep(10) as a, 1 as b;

mysql> show variables like ‘%slow%’;  

6, backup the old big slow log file to other directory.

+———————+—————-+  

mv /mysqllog/slow_log/slow_queries_3306.log
/mysqlbackup/slow_log/slow_queries_3306.log.bak.20140213

| Variable_name       | Value          |  

您可能感兴趣的文章:

  • mysql 开启慢查询
    如何打开mysql的慢查询日志记录
  • MYSQL5.7.9开启慢查询日志的技巧
  • 详解MySql的慢查询分析及开启慢查询日志
  • MySQL慢查询优化之慢查询日志分析的实例教程
  • MySQL开启慢查询日志log-slow-queries的方法
  • 对MySQL慢查询日志进行分析的基本教程
  • MySQL中查询日志与慢查询日志的基本学习教程
  • 详解mysql数据库如何开启慢查询日志
  • MySQL慢查询之pt-query-digest分析慢查询日志
  • MySQL慢查询日志的配置与使用教程

+———————+—————-+  

| log_slow_queries    | ON             |  

| slow_launch_time    | 2              |  

| slow_query_log      | ON             |  

| slow_query_log_file | mysql_slow.log |  

+———————+—————-+  

4 rows in set (0.00 sec)  

 

slow_launch_time跟慢查询日志没有任何关系, 它代表的是thread
create的一个阈值,如果要看 long_query_time,可以用 

Java代码  

mysql> show variables like ‘%long%’;  

+—————–+———-+  

| Variable_name   | Value    |  

+—————–+———-+  

| long_query_time | 3.000000 |  

+—————–+———-+  

1 row in set (0.00 sec)  

  www.2cto.com  

  2.mysql慢查询日志分析 

           
 建表如下图,建表勿要给text加上索引,否则可能出现不了超过3秒的查询,数据表填充了4194304条数据。 

             

永利皇宫登录网址 1

 

            我们来执行一个超过3秒的查询,如下: 

Java代码  

     mysql> select * from wei where text=’orange’;  

+———+——–+  

| id      | text   |  

+———+——–+  

| 4103519 | orange |  

+———+——–+  

 

1 row in set (3.79 sec) 

再执行一个超过3秒的和一个没有超过3秒的: 

Java代码  

mysql> select * from wei where text=’xishizhaohua’;  

网站地图xml地图