动态开启MYSQL日志慢查询

作者: admin 分类: mysql 发布时间: 2013-05-24 14:26 ė 6 没有评论

开启mysql的慢查询日志记录方法有好多种,可以在启动mysql时通过命令行传参,也可以在配置文件里设置,但是这两种方法都需要重启mysql,而且如果不需要记录慢查询日志了,又要重启mysql,这对于已经投入运营的MySQL是不可接受的。

幸好在mysql5.1中已经为我们提供了在线设置慢查询日志的方法,通过设置mysql系统变量就可以达到这个目的。这样就不用重启mysql了。
在线开启慢查询日志:
  1. mysql > set global slow_query_log=1;
  2. mysql > set global long_query_time=2;
  3. mysql > set global slow_query_log_file=’mysql-slow.log’;
如果不需要记录慢查询了,可以很方便的关闭:

 

  1. mysql > set global slow_query_log=0;

注意:在5.1.29以前用的是log_slow_queries变量,5.1.29及之后的版本log_slow_queries变量就用slow_query_log变量代替了。slow_query_log指定开启还是关闭,slow_query_log_file指定日志文件filename,long_query_time指定慢查询的阈值。

注意2:long_query_time变量从MySQL 5.1.21开始,可以被设置的最小值为0,且精度可以被设置到微秒级(例如值可以被设置为 1.000002,即1秒又2微秒);而在5.1.21之前的版本,这个变量可以被设置的最小值为1,且只能为整型。

 

查看慢查询日志

命令mysqldumpslow 分析 MYSQL

show variables like ‘%slow%’; 查看MYSQL 慢查询日志存放路劲

mysqldumpslow 的常用参数如下:

-s 后面接下面的参数表示 mysqldumpslow 结果显示的顺序!
c query执行的次数
t sql执行的时间
l lock锁表的时间
r sql返回的行数
ac,at,al,ar,表示倒序排列
-t,是top n,即为返回前面n条数据。
-g,后边可以写一个正则匹配模式,大小写不敏感

我常用 mysqldumpslow -s al -t 20 slow.log

本文出自 小Q,转载时请注明出处及相应链接。

本文永久链接: http://www.linuxqq.com/archives/987.html

0
更多
Ɣ回顶部