SHOW VARIABLES LIKE '%slow_query_log%';
ON说明开启,OFF说明关闭
日志位置方面,在Windows10,MySQL8的环境下,日志文件在
C:\ProgramData\MySQL\MySQL Server 8.0\Data\KKKL-slow.log
中
SET GLOBAL slow_query_log = 0; SET GLOBAL slow_query_log = 1;
0关闭,1开启
SHOW VARIABLES LIKE '%long_query_time%'; SHOW GLOBAL VARIABLES LIKE '%long_query_time%';
注意有2种,一种加GLOBAL,可以应用于除当前会话外的所有会话;不加GLOBAL的话,只有当前会话生效
但是尽管设置了GLOBAL,当MySQL服务重启后,仍然会按照my.ini的配置重置
my.ini文件位置
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
SET long_query_time = 5; SET GLOBAL long_query_time = 5;
假设当前慢查询阈值为3,通过以下命令进行一个慢查询
SELECT SLEEP(4);
在慢查询日志文件中会出现这么一条记录
# Time: 2021-10-31T14:52:45.633715Z # User@Host: root[root] @ localhost [::1] Id: 10 # Query_time: 4.000819 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1 use learning; SET timestamp=1635691961; SELECT SLEEP(4);
就可以准确定位慢查询语句了
SHOW STATUS LIKE '%Slow_queries%'; SHOW GLOBAL STATUS LIKE '%Slow_queries%';