使用慢查询日志进行SQL排查
慢查询日志:MYSQL提供的一种日志记录,用于记录MYSQL的响应时间超过阈值的sql语句(long_query_time默认10秒)。
检查是否开启了慢查询日志的命令:show variables like '%slow_query_log%';
l临时开启mysql的命令:set global slow_query_log = 1;
注意:这里的临时开启指的是关闭mysql服务后再次进入mysql
查询慢查询阈值的命令:show variables like 'long_query_time';
临时设置阈值:set global long_query_time = 5;
注意:这里的临时开启指的是重新登陆后就起效,不需要重启服务
mysql慢sql日志文件保存的位置:
/var/lib/mysql/hadoop1-slow.log(每个人的电脑上的位置可能不一样)
查看慢sql查询的方法:
(1)通过cat /var/lib/mysql/hadoop1-slow.log查看日志信息。
(2)使用mysqldumpslow工具查看。(不再数据库中,在linux系统中进行操作)
使用mysqldump --help可以查看指令的含义。
–获取返回记录最多的3个SQL
mysqldumpslow -s r -t 3 /var/lib/mysql/handoop1-slow.log
--获取访问次数最多的3个SQL
mysqldumpslow -s c -t 3 /var/lib/mysql/handoop1-slow.log
--按照时间排序,前10条包含left join查询语句的SQL
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/handoop1-slow.log
语法:
mysqldumpslow 各种参数 慢查询日志的文件