MySQL慢查询日志

964 阅读1分钟

慢查询日志的作用

慢查询日志会把查询耗时超过规定时间的SQL语句记录下来,利用慢查询日志,可以定位分析性能的瓶颈

查看慢查询日志功能是否开启,以及慢查询日志文件存放目录

SHOW VARIABLES LIKE 'slow_query%'
  • 开启慢查询日志
    • slow_query_log 可以设置慢查询日志的开关状态
    • long_query_time 可以规定查询超时的时间,单位是秒

在MySQL配置文件 /etc/my.cnf 中,设置

slow_query_log=ON
long_query_time=1

开启慢查询日志,记录查询超过1秒的sql语句,重启MySQL后生效。

可以使用下面sql测试以下

SELECT SLEEP(2);

慢查询日志记录文件

Tcp port: 0  Unix socket: (null)
Time                 Id Command    Argument
# Time: 210125  6:30:14
# User@Host: reptile[reptile] @  [192.168.10.254]  Id:     1
# Query_time: 2.000380  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1611556214;
SELECT SLEEP(2);
  • SET timestamp=1611556214; 执行sql时间戳
  • Query_time sql执行时长
  • Rows_sent 返回几条记录