一. 简介

    开启慢查询日志,可以让mysql或者mariadb记录执行时超过指定时间的sql语句。

二. 开启慢查询日志设置

1. 在mariadb的配置文件/etc/my.cnf(centos系统是该文件,其他系统请自行寻找mysql或mariadb的配置文件)中的[mysqld]下面添加以下语句。重启数据库即可。

[mysqld]
slow_query_log = 1  # 开启慢日志查询
long_query_time = 2  # 把查询时间超过2秒的定义为慢查询,也可以设置为1秒
log_output = 'TABLE'  # 保存日志到mysql数据的slow_log表
#slow_query_log_file=/var/log/mariadb/slow_query_log.txt  #将日志保存带本地文件中

2. 参数说明:

slow_query_log:表示是否开启慢查询日志。

long_query_time:最长运行时间。表示运行超过该值的sql语句都会被定义为慢查询语句。该值默认为10秒。

log_output:表示当慢查询日志开启后,以哪种方式存放,log_output可以设置为4种值,“FILE”、“TABLE”、“FILE,TABLE”、“NONE”。

    “FILE“:表示慢查询日志存放在指定的文件中。

    “TABLE”:表示慢查询日志存放在mysql库中的slow_log表中,如下图所示。一般建议设置为该值。

    “FILE,TABLE”:表示将满查询日志同时存放于指定的文件盒slow_log表中。但是这样的设置有可能会造成一定的IO压力。

    “NONE”:表示不记录查询日志,即使slow_query_log设置为ON,如果log_ouput设置为NONE,也不会记录慢查询日志。

slow_query_log_file:当log_output设置为使用文件记录慢查询日志时,也就是设置为“FILE”或者“FILE,TABLE”时,该参数指定将慢查询日志存储到哪个日志文件。默认的慢查询日志文件名为“主机名-slow.log”,其位置为datadir参数所对应的目录位置。

mysql 慢日志 展示平台 mysql开启慢日志查询_mysql 慢日志 展示平台

3. 查看配置是否成功

数据库重启后,进入mysql,输入以下命令查看慢查询日志是否开启成功。

show variables like '%quer%';

mysql 慢日志 展示平台 mysql开启慢日志查询_mysql_02

三、测试

执行一条超过设置时间的sql语句:

MariaDB [(none)]> select sleep(3);

然后在数据库的mysql库中的slow_log表可以看到相应的记录

 

四,命令行修改

命令行查询慢日志设置:
    show variables  like '%slow_query_log%';
    show variables like 'long_query_time%';

命令行修改慢日志设置:
      set global show_query_log=0;

      set global long_query_time=3;

注意: set 命令只对当前数据库生效,如果MySQL重启后则会失效。如果要永久生效,就必须修改配置文件my.cnf(其它系统变量也是如此)
 

 

其他更详细的关于mysql慢查询日志见:http://www.zsythink.net/archives/1260