当前位置: 首页 >> MySQL >> 【数据库】mysql慢查询日志 >> 正文

【数据库】mysql慢查询日志

2个月前 (05-15)     作者:Jiaozn     分类:MySQL     阅读次数:125     评论(0)    

MySQL 慢查询日志

简介

MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。


查看是否开启慢查询功能:

mysql> show variables like 'slow_query%';

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

| Variable_name       | Value                              |

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

| slow_query_log      | OFF                                |

| slow_query_log_file | /var/lib/mysql/instance-1-slow.log |

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

2 rows in set (0.01 sec)

mysql> show variables like 'long_query_time';

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

| Variable_name   | Value     |

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

| long_query_time | 10.000000 |

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

1 row in set (0.00 sec)

说明:


slow_query_log 慢查询开启状态

slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)

long_query_time 查询超过多少秒才记录


配置

临时配置

默认没有开启慢查询日志记录,通过命令临时开启:


mysql> set global slow_query_log='ON';

Query OK, 0 rows affected (0.00 sec)

 

mysql> set global slow_query_log_file='/var/lib/mysql/instance-1-slow.log';

Query OK, 0 rows affected (0.00 sec)

 

mysql> set global long_query_time=2;

Query OK, 0 rows affected (0.00 sec)

永久配置

修改配置文件达到永久配置状态:


/etc/mysql/conf.d/mysql.cnf

[mysqld]

slow_query_log = ON

slow_query_log_file = /var/lib/mysql/instance-1-slow.log

long_query_time = 2

配置好后,重新启动 MySQL 即可。


测试

通过运行下面的命令,达到问题 SQL 语句的执行:


mysql> select sleep(2);

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

| sleep(2) |

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

|        0 |

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

1 row in set (2.00 sec)

然后查看慢查询日志内容:


$ cat /var/lib/mysql/instance-1-slow.log

/usr/sbin/mysqld, Version: 8.0.13 (MySQL Community Server - GPL). started with:

Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock

Time                 Id Command    Argument

/usr/sbin/mysqld, Version: 8.0.13 (MySQL Community Server - GPL). started with:

Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock

Time                 Id Command    Argument

# Time: 2018-12-18T05:55:15.941477Z

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

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

SET timestamp=1545112515;

select sleep(2);

愿力量与你同在_YC


除非注明,发表在“Jiaozn的博客”的文章『【数据库】mysql慢查询日志』版权归Jiaozn所有。 转载请注明出处为“本文转载于『Jiaozn的博客』原地址https://www.jiaozn.com/reed/591.html

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站

分享:

支付宝

微信