定义:MySQL默认10秒内没有响应SQL查询结果,则为慢查询;
- 开启慢查询日志:
默认情况下,慢查询日志被禁用;默认慢查询日志放在数据目录中,默认文件名为host_name-slow.log;
注意:使用set global slow_query_log=1开启慢查询日志只对当前数据库生效,MySQL重启后则会失效;如果要永久生效,就必须修改配置文件my.cnf(windows下为my.ini),或者在使用命令启动mysql的时候,在--slow-query-log参数中指定,其他系统变量也是如此。
- 设置慢查询时间阈值:
开启了慢查询日志后,什么样的SQL才会记到慢查询日志里面呢?这个是由参数long_query_time控制,默认long_query_time=10,也就是10秒。
注意:使用show variables like 'long_query_time'查看的是当前连接会话的变量值;因为long_query_time变量在GOLBAL和SESSION中都有,如果不加访问域则使用默认的SESSION访问域,所以要想看到全部的long_query_time变量需要用如下语句show global variables like 'long_query_time'。
- 查看慢查询记录的条数:
如果你想查询有多少条慢查询记录,可以使用这个系统状态变量slow_queries。
- 日志分析工具:
在实际生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow。