Mysql高级(八) 慢查询日志

一、 查询与开启慢查询日志

show variables like "%slow_query_log%";

图片.png
  • 临时开启, 重启后失效

set GLOBAL slow_query_log = 1

图片.png

二、查询与修改慢查询时间

show variables like "%long_query_time%";

图片.png

set GLOBAL long_query_time = 2

  • 当前窗口 show variables like "%long_query_time%" 不变


    图片.png
  • 当前窗口 show global variables like "%long_query_time%" 改变


    图片.png
  • 新开窗口 show variables like "%long_query_time%" 改变


    图片.png
  • 查询有多少条慢日志

show global status like '%Slow_queries%';

三、修改配置文件方式修改

[mysqld] 下修改

slow_query_log=1;
slow_query_log_file=XXXX
long_query_time=2;
log_output=FILE;

四、查看慢日志

[root@iZhp3349o7pntezql2q5puZ ~]# cat /var/lib/mysql/iZhp3349o7pntezql2q5puZ-slow.log
/usr/sbin/mysqld, Version: 8.0.19 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
/usr/sbin/mysqld, Version: 8.0.19 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
# Time: 2020-05-03T14:29:31.415397Z
# User@Host: root[root] @  [120.230.99.38]  Id:  5042
# Query_time: 5.000252  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 1
use flink;
SET timestamp=1588516166;
select sleep(5);
[root@iZhp3349o7pntezql2q5puZ ~]#

五、使用 mysqldumpslow 慢日志分析工具

命令:

-s 按照那种方式排序
c:访问计数
l:锁定时间
r:返回记录
al:平均锁定时间
ar:平均访问记录数
at:平均查询时间
-t 是top n的意思,返回多少条数据。
-g 可以跟上正则匹配模式,大小写不敏感。

  • 得到返回记录最多的20个sql

mysqldumpslow -s r -t 20 sqlslow.log

  • 得到平均访问次数最多的20条sql

mysqldumpslow -s ar -t 20 sqlslow.log

  • 得到平均访问次数最多,并且里面含有ttt字符的20条sql

mysqldumpslow -s ar -t 20 -g "ttt" sqldlow.log

参考博客 : https://blog.csdn.net/sunyuhua_keyboard/article/details/81204020

你可能感兴趣的:(Mysql高级(八) 慢查询日志)