mysql慢sql开启和测试

79 阅读1分钟

查看配置

查看慢sql配置 show VARIABLES like '%slow_query%'; image.png slow_query_log=on或者1是开启状态

slow_query_log_file=是慢SQL记录的日志

查看慢sql超时时间配置 show VARIABLES like '%long_query_time%';

image.png 其中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

image.png

刷新配置

方案一: 临时修改需要刷新mysql和重新打开新的会话窗口 FLUSH HOSTS;

方案二: 重启mysql

测试

执行休眠sql SELECT SLEEP(4);

查看日志

image.png

日志解释

第一行,SOL查询执行的时间 第二行,执行SQL查询的连接信息,用户和连接IP 第三行,记录了一些我们比较有用的信息,

如下解析

  1. Query time这条SQL执行的时间,越长则越慢
  2. Lock time,在MySOL服务器阶段(不是在存储引]警阶段)等待表锁时间
  3. Rows sent查询返回的行数
  4. Rows examined,查询检查的行数,越长就当然越费时间
  5. 第四行,设置时间戳,没有实际意义,只是和第一行对应执行时间。
  6. 第五行及后面所有行(第二个# Time:之前),执行的sql语句记录信息,因为sql可能会很长。