mysql的慢查询配置_Mysql慢查询配置

MYSQL慢查询能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化.

如何开启慢查询?

首先我们先查看MYSQL服务器的慢查询状态是否开启.

执行如下命令:

mysql> show variables like 'slow%';

+---------------------+-----------------------------------+

| Variable_name       | Value                             |

+---------------------+-----------------------------------+

| slow_launch_time    | 2                                 |

| slow_query_log      | OFF                               |

| slow_query_log_file | /data/mysql/data/ser6-51-slow.log |

0818b9ca8b590ca3270a3433284dd417.png

我们可以看到当前log_slow_queries状态为OFF, 说明当前并没有开启慢查询.

需要两个步骤开启:

一:在线修改

#修改slow_query_log

mysql> set global slow_query_log=ON

-> ;

Query OK, 0 rows affected (0.05 sec)

mysql> show variables like 'slow%';

+---------------------+-----------------------------------+

| Variable_name       | Value                             |

+---------------------+-----------------------------------+

| slow_launch_time    | 2                                 |

| slow_query_log      | ON                                |

| slow_query_log_file | /data/mysql/data/ser6-51-slow.log |

+---------------------+-----------------------------------+

3 rows in set (0.00 sec)

#修改long_query_time

默认该参数是10秒:

mysql> show variables like 'long%';

+-----------------+-----------+

| Variable_name   | Value     |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set (0.00 sec)

假如我想记录执行时间超过3秒的sql语句:

mysql> set global long_query_time = 3

-> ;

Query OK, 0 rows affected (0.00 sec)

当前会话看不到long_query_time修改后的变化,需要新打开一个会话,进行查询。

mysql> show variables like 'long%';

+-----------------+----------+

| Variable_name   | Value    |

+-----------------+----------+

| long_query_time | 3.000000 |

+-----------------+----------+

1 row in set (0.00 sec)

二:修改my.cnf

在线修改的方式在重启数据库服务后会失效,所以还需要修改配置文件:

在[mysqld]下添加:

slow_query_log_file=/data/mysql/data/ser6-51-slow.log

slow_query_log=ON

long_query_time = 3

三:验证是否配置成功

#查看慢查询日志文件是否生成

[root@ser6-51 ~]# ls -l /data/mysql/data/ser6-51-slow.log

-rw-rw---- 1 mysql mysql 570 Jun 26 10:08 /data/mysql/data/ser6-51-slow.log

#查看long_query_time是否生效

mysql> select sleep(4);

+----------+

| sleep(4) |

+----------+

|        0 |

+----------+

1 row in set (4.00 sec)

[root@ser6-51 ~]# vi /data/mysql/data/ser6-51-slow.log

# Time: 150626 10:31:18

# User@Host: root[root] @ localhost []  Id:    26

# Query_time: 4.000214  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0

SET timestamp=1435285878;

select sleep(4);

--慢查询日志记录了这个耗时4秒的操作,所以配置成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值