mysql 开启 slow log_MySQL:动态开启慢查询日志(Slow Query Log)

前言

在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一。要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改

慢日志设置方式

写入文件

写入数据库

实践操作

方式一:写入文件

编辑my.conf 中修改 log_slow_queries 的日志地址

$ cd /etc/mysql

$ cat my.cnf |grep slow

log_slow_queries= /data/logs/mysql/mysql-slow.log

$ sudo /etc/init.d/mysql restart

简单验证

$ mysql -uroot -p

mysql> show variables like '%slow_query_log%';

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

| Variable_name       | Value                           |

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

| slow_query_log      | ON                              |

| slow_query_log_file | /data/logs/mysql/mysql-slow.log |

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

2 rows in set (0.00 sec)

$ tail -f /data/logs/mysql/mysql-slow.log

# Time: 161110 23:20:22

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

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

SET timestamp=1478791222;

select sleep(3);

方式二:写入数据库

先查看目前日志输出方式

mysql> show variables like '%log_output%';

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

| Variable_name | Value |

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

| log_output    | FILE  |

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

1 row in set (0.00 sec)

设置输出方式为FILE,TABLE

mysql> set global log_output='FILE,TABLE';

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%log_output%';

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

| Variable_name | Value      |

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

| log_output    | FILE,TABLE |

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

1 row in set (0.00 sec)

mysql> select count(*) from mysql.slow_log;

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

| count(*) |

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

|        2 |

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

1 row in set (0.00 sec)

20ad159cda77e108167d1c00bfb6272e.png

备注: log_output 参数设定日志文件的输出,可选值为 TABLE, FILE ,NONE;  "TABLE" 意思为设定日志分别记录到 mysql 库的 general_log 和 slow_log 表中; "FILE" 意思为记录日志到操作系统的文件中, "NONE" 意思为取消日志记录。

参考资料

MySQL:动态开启慢查询日志(Slow Query Log)

标签:

mysql

slow_log

log

log_output

query

智能推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值