前言
MySQL开启慢查询配置,通过mysqldumpslow分析慢查询日志
一、MySQL开启慢查询
-
修改数据库配置,增加慢sql日志
vim /etc/my.cnf #开启慢查询日志 slow_query_log=ON #日志存放地址 slow_query_log_file=/var/lib/mysql/mysql-slow.log #慢查询时间(s) long_query_time=2 #没有使用索引的sql log_queries_not_using_indexes=on
-
重启数据库
service mysqld restart
-
登录数据库查询配置信息是否生效
show VARIABLES like '%slow%'; show VARIABLES like 'long_query_time';
二、使用mysqldumpslow工具进行日志分析
1.日志文件格式
-- 执行sql时间
# Time: 210430 16:59:21
-- 执行SQL的主机信息
# User@Host: xiaojing[xiaojing] @ [127.0.0.1] Id: 1294
-- SQL的执行信息
# Query_time: 2.705331 Lock_time: 0.000298 Rows_sent: 0 Rows_examined: 759423
-- SQL执行时间
# SET timestamp=1619773161;
-- SQL内容
# UPDATE 。。。
2.常用指令
例如:mysqldumpslow -s at -t 5
帮助-h
-s,是order的顺序
----- al 平均锁定时间
-----ar 平均返回记录时间
-----at 平均查询时间(默认)
-----c 计数
-----l 锁定时间
-----r 返回记录
-----t 查询时间
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的