MySQL:动态开启慢查询日志(Slow Query Log)
Posted 即学即码工作室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 # [email protected]: 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)
备注: log_output 参数设定日志文件的输出,可选值为 TABLE, FILE ,NONE; "TABLE" 意思为设定日志分别记录到 mysql 库的 general_log 和 slow_log 表中; "FILE" 意思为记录日志到操作系统的文件中, "NONE" 意思为取消日志记录。
参考资料
原文地址:MySQL:动态开启慢查询日志(Slow Query Log)
标签:mysql slow_log log log_output query
智能推荐
- apparmor 引起自定义mysql 日志问题
- In MySQL, a zero number equals any string
- MetaWeblog 同时管理51cto,csdn,sina,163,oschina,cnblogs等博客
- PAC 自动代理
- 免费FQ利器:shadowsocks
以上是关于MySQL:动态开启慢查询日志(Slow Query Log)的主要内容,如果未能解决你的问题,请参考以下文章