欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 【赵渝强老师】MySQL的慢查询日志

【赵渝强老师】MySQL的慢查询日志

2024/11/30 14:36:49 来源:https://blog.csdn.net/zhaoyuqiang/article/details/143905354  浏览:    关键词:【赵渝强老师】MySQL的慢查询日志

在这里插入图片描述

MySQL的慢查询日志可以把超过参数long_query_time时间的所有SQL语句记录进来,帮助DBA人员优化所有有问题的SQL语句。通过mysqldumpslow工具可以查看慢查询日志。

视频讲解如下:

MySQL的慢查询日志

【赵渝强老师】MySQL的慢查询日志

下面通过具体的演示来说明如何使用MySQL的慢查询日志。

(1)查看是否开启了慢查询日志功能

mysql> show variables like '%slow_query%';# 输出的信息如下:
+---------------------+----------------------------------------+
| Variable_name       | Value                                  |
+---------------------+----------------------------------------+
| slow_query_log      | OFF                                    |
| slow_query_log_file | /usr/local/mysql/data/mysql11-slow.log |
+---------------------+----------------------------------------+
# 其中:
# slow_query_log:是否慢查询开启状态。
# slow_query_log_file:指定慢查询日志存放的位置。

提示:可以通过设置参数“long_query_time”来指定查询超过多少秒才记录,该参数的默认值是10秒。

(2)临时启用慢查询日志

mysql> set global slow_query_log='ON';
mysql> set session long_query_time=2;  

提示:如果需要永久启用慢查询日志,可以修改配置文件“/etc/mysql.cnf”增加下面的内容,并重启MySQL。

[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/mysql11-slow.log
long_query_time = 2

(3)查看当前的慢查询日志设置

mysql> show variables like '%slow_query_log%';# 输出的信息如下:
+---------------------+----------------------------------------+
| Variable_name       | Value                                  |
+---------------------+----------------------------------------+
| slow_query_log      | ON                                     |
| slow_query_log_file | /usr/local/mysql/data/mysql11-slow.log |
+---------------------+----------------------------------------+mysql> show variables like '%long_query_time%';# 输出的信息如下:
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 2.000000 |
+-----------------+----------+

(4)手动触发一个慢查询。

mysql> select sleep(3);

(5)查看慢查询日志

cat /usr/local/mysql/data/mysql11-slow.log# 输出的信息如下:
/usr/local/mysql/bin/mysqld, Version: 8.0.20 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sockTime                 Id Command    Argument
# Time: 2022-02-20T03:37:12.626943Z
# User@Host: root[root] @ localhost []  Id:     8
# Query_time:3.000572 Lock_time: 0.000000 Rows_sent:1 Rows_examined: 1use demo1;
SET timestamp=1645328229;
select sleep(3);

提示:慢查询日志也可以使用“mysqldumpslow”指令进行查看,例如:

mysqldumpslow /usr/local/mysql/data/mysql11-slow.log

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com