查看配置
查看慢sql配置
show VARIABLES like '%slow_query%';
slow_query_log=on或者1是开启状态
slow_query_log_file=是慢SQL记录的日志
查看慢sql超时时间配置
show VARIABLES like '%long_query_time%';
其中3是3秒以秒为单位
开启
临时开启
执行以下命令
set GLOBAL slow_query_log_file='D:\\mysql-8.0.32-winx64\\TMSH1203L-slow.log';
set GLOBAL slow_query_log=ON;
set GLOBAL long_query_time=3;
永久开启
修改mysql配置文件my.ini
long_query_time=1
slow_query_log=on
slow_query_log_file=D:\\mysql-8.0.32-winx64\\TMSH1203L-slow.log
刷新配置
方案一: 临时修改需要刷新mysql和重新打开新的会话窗口
FLUSH HOSTS;
方案二: 重启mysql
测试
执行休眠sql
SELECT SLEEP(4);
查看日志
日志解释
第一行,SOL查询执行的时间 第二行,执行SQL查询的连接信息,用户和连接IP 第三行,记录了一些我们比较有用的信息,
如下解析
- Query time这条SQL执行的时间,越长则越慢
- Lock time,在MySOL服务器阶段(不是在存储引]警阶段)等待表锁时间
- Rows sent查询返回的行数
- Rows examined,查询检查的行数,越长就当然越费时间
- 第四行,设置时间戳,没有实际意义,只是和第一行对应执行时间。
- 第五行及后面所有行(第二个# Time:之前),执行的sql语句记录信息,因为sql可能会很长。