mysqldumpslow [ OPTS... ] [ LOGS... ] //命令行格式
常用到的格式组合
- -s 表示按照何种方式排序
- c 访问次数
- l 锁定时间
- r 返回记录
- t 查询时间
- al 平均锁定时间
- ar 平均返回记录数
- at 平均查询时间
- -t 返回前面多少条数据
- -g 后边搭配一个正则匹配模式,大小写不敏感
1、拿到慢日志路径
show variables like '%slow_query_log%';
日志路径为:/opt/mysql-5.7.28/data/linux-141-slow.log
- [root@linux-141 mysql-5.7.28]# cat /opt/mysql-5.7.28/data/linux-141-slow.log
- /opt/mysql-5.7.28/bin/mysqld, Version: 5.7.28-log (MySQL Community Server (GPL)). started with:
- Tcp port: 3306 Unix socket: /tmp/mysql.sock
- Time Id Command Argument
- # Time: 2021-09-15T01:40:31.342430Z
- # User@Host: root[root] @ [192.168.36.1] Id: 2
- # Query_time: 2.000863 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
- use itcast;
- SET timestamp=1631670031;
- -- 睡眠2s再执行
- select sleep(2);
- [root@linux-141 mysql-5.7.28]#
-
2、得到访问次数最多的 10 条 SQL
- [root@linux-141 mysql-5.7.28]# ./bin/mysqldumpslow -s r -t 10 /opt/mysql-5.7.28/data/linux-141-slow.log
- -bash: ./bin/mysqldumpslow: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
- [root@linux-141 mysql-5.7.28]# yum -y install perl perl-devel
- [root@linux-141 mysql-5.7.28]# ./bin/mysqldumpslow -s r -t 10 /opt/mysql-5.7.28/data/linux-141-slow.log
-
3、按照时间排序的前 10 条里面含有左连接的 SQL
- [root@linux-141 mysql-5.7.28]# ./bin/mysqldumpslow -s t -t 10 -g "left join" /opt/mysql-5.7.28/data/linux-141-slow.log
-
- Reading mysql slow query log from /opt/mysql-5.7.28/data/linux-141-slow.log
- Died at ./bin/mysqldumpslow line 167, <> chunk 28.
- [root@linux-141 mysql-5.7.28]#
1、查看慢查询日志
- [root@linux-141 mysql-5.7.28]# cat /opt/mysql-5.7.28/data/linux-141-slow.log
- /opt/mysql-5.7.28/bin/mysqld, Version: 5.7.28-log (MySQL Community Server (GPL)). started with:
- Tcp port: 3306 Unix socket: /tmp/mysql.sock
- Time Id Command Argument
- # Time: 2021-09-15T01:40:31.342430Z
- # User@Host: root[root] @ [192.168.36.1] Id: 2
- # Query_time: 2.000863 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
- use itcast;
- SET timestamp=1631670031;
- -- 睡眠2s再执行
- select sleep(2);
- # Time: 2021-09-15T01:50:32.130305Z
- # User@Host: root[root] @ [192.168.36.1] Id: 2
- # Query_time: 3.001904 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
- SET timestamp=1631670632;
- select sleep(3);
- # Time: 2021-09-15T01:50:55.064372Z
- # User@Host: root[root] @ [192.168.36.1] Id: 2
- # Query_time: 4.008082 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
- SET timestamp=1631670655;
- select sleep(4);
- # Time: 2021-09-15T01:51:01.343463Z
- # User@Host: root[root] @ [192.168.36.1] Id: 2
- # Query_time: 5.007035 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
- SET timestamp=1631670661;
- select sleep(5);
- # Time: 2021-09-15T01:51:07.737834Z ###### 执行SQL时间
- # User@Host: root[root] @ [192.168.36.1] Id: 2 ###### 执行SQL的主机信息
- # Query_time: 6.009129 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 ###### SQL的执行信息
- SET timestamp=1631670667; ###### SQL执行时间
- select sleep(6); ###### SQL内容
- [root@linux-141 mysql-5.7.28]#
-
属性解释
- # Time: 2021-09-15T01:51:07.737834Z ###### 执行SQL时间
- # User@Host: root[root] @ [192.168.36.1] Id: 2 ###### 执行SQL的主机信息
- # Query_time: 6.009129 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 ###### SQL的执行信息
- SET timestamp=1631670667; ###### SQL执行时间
- select sleep(6); ###### SQL内容
tips:
show profile,它也是调优工具
也是 MySQL 服务自带的分析调优工具
不过这款更高级
比较接近底层硬件参数的调优。
简介:
show profile 是 MySQL 服务自带更高级的分析调优工具
比较接近底层硬件参数的调优
1、查看 show profile 设置
- -- 默认关闭,保存近15次的运行结果
- show variables like 'profiling%';
通过上面我们发现,show profile 工具默认是关闭状态,15 表示保存了近 15 次的运行结果。
2、开启调优工具
执行下面的命令开启
SET profiling = ON;
再次查看状态
show variables like 'profiling%';
3、查看最近 15 次的运行结果
- -- 查看最近15次的运行结果
- show profiles;
-
- -- 可以显示警告和报错的信息
- show warnings;
-
- -- 慢查询语句
- SELECT * FROM product_list WHERE store_name = '联想北达兴科专卖店';
显示最近 15 次的运行结果