您的位置:首页 > 数据库 > MySQL

Mysql 慢查询日志

2013-11-27 00:43 465 查看
慢查询日志在日常的数据库性能分析中非常常用,在业务高峰期进行样本收集,找出性能低下的sql语句非常高效。

Mysql开启慢查询日志

查询目前服务器的查询日志状态(示例服务器刚刚开启,没开启 slow_query_log应该为OFF)

mysql> show variables  like  '%slow%';
+---------------------+---------------------------------------------------------+
| Variable_name       | Value                                                   |
+---------------------+---------------------------------------------------------+
| log_slow_queries    | ON                                                      |
| slow_launch_time    | 2                                                       |
| slow_query_log      | ON                                                      |
| slow_query_log_file | /data0/datadir/mysql/var/bj-fl-mysql-slave-002-slow.log |
+---------------------+---------------------------------------------------------+
4 rows in set (0.00 sec)


两种方式:

方式一:修改配置文件

修改my.cnf

在[mysqld]标签下添加属性:

slow_query_log_file = /data0/dataDir/mysql/var/hostname-slow.log

long_query_time = 1

含义:

表示慢查询日志所放目录为 /data0/dataDir/mysql/var/hostname-slow.log

查询时间高于1秒的查询全部纪录到慢查询日志中。

重启mysql生效。

方式二:在线开启

通过在线修改全局变量进行设置。

mysql > set global slow_query_log=1;

mysql > set global long_query_time=2;

mysql > set global slow_query_log_file='/data0/dataDir/mysql/var/hostname-slow.log';

设置之后慢查询生效。

关闭慢查询日志功能

关闭慢查询日志也比较简单,

分别注释掉my.cnf中[mysqld]添加的

slow_query_log_file = /data0/dataDir/mysql/var/hostname-slow.log

long_query_time = 1

之后重启mysql。

或者在线进行关闭

mysql > set global slow_query_log=0;


在线关闭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: