如何动态开启mysql的慢查询日志记录

    开启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;  //set 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,且只能为整型。

0 Comments
Leave a Reply