一、 查询与开启慢查询日志
show variables like "%slow_query_log%";
- 临时开启, 重启后失效
set GLOBAL slow_query_log = 1
二、查询与修改慢查询时间
show variables like "%long_query_time%";
set GLOBAL long_query_time = 2
-
当前窗口 show variables like "%long_query_time%" 不变
-
当前窗口 show global variables like "%long_query_time%" 改变
-
新开窗口 show variables like "%long_query_time%" 改变
查询有多少条慢日志
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