MySQL慢查询日志
2021-09-29 本文已影响0人
CodeYang
MySQL慢查询日志
以下笔记来自于该视频:https://www.bilibili.com/video/BV1KW411u7vy?p=20&share_source=copy_web
MySQL慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阙值的语句,具体指运行时间超过 long_query_time 值的SQL,则会被记录到慢查询日志中。
具体指运行时间超过 long_query_time 值的SQL,则会被记录到慢查询日志中。long_query_time 的默认值是10,意思是运行超过 10秒以上的语句。
默认情况下,MySQL数据库没有开启慢查询日志,需要手动设置。
当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志写入文件。
查看是否开启慢查询日志
查看慢查询日志是否开启
-- 查看是否开启慢查询日志
SHOW VARIABLES LIKE '%slow_query_log%';
image.png
开启慢查询日志
-
方式一通过命令开启慢查询日志
--开启慢查询日志,只对当前数据库生效,重启之后失效 SET GLOBAL slow_query_log = 1;
-
通过配置文件设置,找到目录下 my.ini 文件,添加以下配置
#开启慢查询日志 slow_query_log = 1 slow_query_log_file = D:\Soft\mysql-8.0.24-winx64\data\slow_query_log.log long_query_time = 10
设置慢查询日志时间
--查看慢查询日志时间
SHOW VARIABLES LIKE 'long_query_time%';
--设置时间 3 秒
SET GLOBAL long_query_time = 3;
查看慢查询日志
-
开启慢查询日志并设置时间
SET GLOBAL slow_query_log = 1; SET GLOBAL long_query_time = 3;
-
执行一个慢查询语句
select sleep(4)
-
慢查询日志展示
D:\Soft\mysql-8.0.24-winx64\bin\mysqld, Version: 8.0.24 (MySQL Community Server - GPL). started with: TCP Port: 3306, Named Pipe: MySQL Time Id Command Argument # Time: 2021-09-29T09:05:44.838540Z # User@Host: root[root] @ localhost [::1] Id: 10 # Query_time: 4.004043 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1 SET timestamp=1632906340; select sleep(4);