本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。
mysql的慢查询日志记录什么
MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。
具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。
long_query_time的默认值为10,意思是记录运行10秒以上的语句。
默认情况下,MySQL数据库并不启动慢查询日志,需要手动来设置这个参数。
当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。
慢查询日志支持将日志记录写入日志文件和数据库表。
参数说明
-
slow_query_log:是否开启慢查询日志,1表示开启,0表示关闭。
-
log-slow-queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
-
slow-query-log-file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
-
long_query_time:慢查询阈值,当查询时间多于设定的阈值时,记录日志。
-
log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中(可选项)。
-
log_output:日志存储方式。log_output=’FILE’表示将日志存入文件,默认值是’FILE’。log_output=’TABLE’表示将日志存入数据库。
扩展知识:
1、查看慢日志功能的状态,慢日志功能默认是关闭的show variables like ‘%slow_query_log%’;
OFF表示慢日志功能处于关闭状态,慢日志记录存储在DESKTOP-2331B4V-slow.log文件中,DESKTOP为本人的计算机名。
2、开启慢日志功能set global slow_query_log=1;
然后再查询慢日志状态
状态为ON,表示慢日志功能已开启。
3、查看默认的long_query_time时间
long_query_time为10秒,表示SQ语句超过10秒的才会被记录到慢日志中。
4、设置long_query_time时长,默认的10秒太长set global long_query_time=3;
重新打开一个会话,如果是window系统的话,再重新打卡一个cmd就可以(注意如果还是在设置long_query_time的会话中查询long_query_time时长的话,还是默认的10秒,所以要重启一个会话),再次查询long_query_time时长
推荐学习:mysql视频教程