简介
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中查询时间超过(大于)设置阈值(long_query_time)的语句,会记录到慢查询日志中
开启、设置、查询慢查询日志
默认情况下,Mysql没有开启慢查询日志。需要手动打开,如不是调优需要的话,不建议开启,因为开启会带来一定的性能影响,慢查询日志支持将日志记录写入文件。
set global slow_query_log=‘ON’;(开启慢查询日志)
查询日志状态
show variables like ‘%query%’;(查询是否开启)
slow_query_log:on(已开启)
long_query_time:3(超过3秒为慢查询)set long_query_time = 3;
log_queries_not_using_indexes:on(没有扫描到索引的都为慢查询)
(开启慢查询日志,只对当前数据库生效,并且重启数据库后失效 set global slow_query_log =1
查看慢查询日志的阈值,默认是10s)
设置阈值set long_query_time = 3;
慢查询日志分析
在产生慢查询时,可以去日志文件查看具体的日志信息(slow_query_log_file:/var/lib/mysql/xxx-slow.log)
cat /var/lib/mysql/xxx-slow.log
开启表格方式查询慢日志:
set global log_output=‘TABLE’;
show variables like ‘%log_output%’;(查询输出形式)
select * from mysql.slow_log;(查询慢日志)
有了慢查询日志就可以通过执行计划去优化了:sql执行过程
mysqldumpslow
官方手册:https://dev.mysql.com/doc/refman/8.0/en/mysqldumpslow.html