• 调优工具常用命令


    语法格式

    mysqldumpslow [ OPTS... ] [ LOGS... ] //命令行格式
    

    常用到的格式组合

    1. -s 表示按照何种方式排序
    2. c 访问次数
    3. l 锁定时间
    4. r 返回记录
    5. t 查询时间
    6. al 平均锁定时间
    7. ar 平均返回记录数
    8. at 平均查询时间
    9. -t 返回前面多少条数据
    10. -g 后边搭配一个正则匹配模式,大小写不敏感

    1、拿到慢日志路径

    show variables like '%slow_query_log%';
    

    日志路径为:/opt/mysql-5.7.28/data/linux-141-slow.log

    查看日志

    1. [root@linux-141 mysql-5.7.28]# cat /opt/mysql-5.7.28/data/linux-141-slow.log
    2. /opt/mysql-5.7.28/bin/mysqld, Version: 5.7.28-log (MySQL Community Server (GPL)). started with:
    3. Tcp port: 3306 Unix socket: /tmp/mysql.sock
    4. Time Id Command Argument
    5. # Time: 2021-09-15T01:40:31.342430Z
    6. # User@Host: root[root] @ [192.168.36.1] Id: 2
    7. # Query_time: 2.000863 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
    8. use itcast;
    9. SET timestamp=1631670031;
    10. -- 睡眠2s再执行
    11. select sleep(2);
    12. [root@linux-141 mysql-5.7.28]#

    2、得到访问次数最多的 10 条 SQL

    1. [root@linux-141 mysql-5.7.28]# ./bin/mysqldumpslow -s r -t 10 /opt/mysql-5.7.28/data/linux-141-slow.log
    2. -bash: ./bin/mysqldumpslow: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
    3. [root@linux-141 mysql-5.7.28]# yum -y install perl perl-devel
    4. [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

    1. [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
    2. Reading mysql slow query log from /opt/mysql-5.7.28/data/linux-141-slow.log
    3. Died at ./bin/mysqldumpslow line 167, <> chunk 28.
    4. [root@linux-141 mysql-5.7.28]#

    3.1.3 慢日志文件分析

    1、查看慢查询日志

    1. [root@linux-141 mysql-5.7.28]# cat /opt/mysql-5.7.28/data/linux-141-slow.log
    2. /opt/mysql-5.7.28/bin/mysqld, Version: 5.7.28-log (MySQL Community Server (GPL)). started with:
    3. Tcp port: 3306 Unix socket: /tmp/mysql.sock
    4. Time Id Command Argument
    5. # Time: 2021-09-15T01:40:31.342430Z
    6. # User@Host: root[root] @ [192.168.36.1] Id: 2
    7. # Query_time: 2.000863 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
    8. use itcast;
    9. SET timestamp=1631670031;
    10. -- 睡眠2s再执行
    11. select sleep(2);
    12. # Time: 2021-09-15T01:50:32.130305Z
    13. # User@Host: root[root] @ [192.168.36.1] Id: 2
    14. # Query_time: 3.001904 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
    15. SET timestamp=1631670632;
    16. select sleep(3);
    17. # Time: 2021-09-15T01:50:55.064372Z
    18. # User@Host: root[root] @ [192.168.36.1] Id: 2
    19. # Query_time: 4.008082 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
    20. SET timestamp=1631670655;
    21. select sleep(4);
    22. # Time: 2021-09-15T01:51:01.343463Z
    23. # User@Host: root[root] @ [192.168.36.1] Id: 2
    24. # Query_time: 5.007035 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
    25. SET timestamp=1631670661;
    26. select sleep(5);
    27. # Time: 2021-09-15T01:51:07.737834Z ###### 执行SQL时间
    28. # User@Host: root[root] @ [192.168.36.1] Id: 2 ###### 执行SQL的主机信息
    29. # Query_time: 6.009129 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 ###### SQL的执行信息
    30. SET timestamp=1631670667; ###### SQL执行时间
    31. select sleep(6); ###### SQL内容
    32. [root@linux-141 mysql-5.7.28]#

    属性解释

    1. # Time: 2021-09-15T01:51:07.737834Z ###### 执行SQL时间
    2. # User@Host: root[root] @ [192.168.36.1] Id: 2 ###### 执行SQL的主机信息
    3. # Query_time: 6.009129 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 ###### SQL的执行信息
    4. SET timestamp=1631670667; ###### SQL执行时间
    5. select sleep(6); ###### SQL内容

    3.2 调优工具 show profile

    tips:

    show profile,它也是调优工具

    也是 MySQL 服务自带的分析调优工具

    不过这款更高级

    比较接近底层硬件参数的调优。

    简介:

    show profile 是 MySQL 服务自带更高级的分析调优工具

    比较接近底层硬件参数的调优

    1、查看 show profile 设置

    1. -- 默认关闭,保存近15次的运行结果
    2. show variables like 'profiling%';

     通过上面我们发现,show profile 工具默认是关闭状态,15 表示保存了近 15 次的运行结果。

    2、开启调优工具

    执行下面的命令开启

    SET profiling = ON;
    

    再次查看状态

    show variables like 'profiling%';
    

    3、查看最近 15 次的运行结果

    1. -- 查看最近15次的运行结果
    2. show profiles;
    3. -- 可以显示警告和报错的信息
    4. show warnings;
    5. -- 慢查询语句
    6. SELECT * FROM product_list WHERE store_name = '联想北达兴科专卖店';

    显示最近 15 次的运行结果

  • 相关阅读:
    C++学习第七课--vector类型笔记
    Echarts社区开源地址
    【服务器数据恢复】服务器光纤共享存储互斥失败的数据恢复案例
    2019CCPC网络赛 杭电 6705 path(题解+代码)
    分享:身份证读卡器java工程乱码解决办法
    Mac下通过brew安装多个版本的go并实现切换
    生成 eps 的四种方法(总有一款适合你)
    P3717 [AHOI2017初中组]cover
    ATtiny88初体验(五):ADC
    算法通过村第十六关-滑动窗口|白银笔记|经典题目讲解
  • 原文地址:https://blog.csdn.net/feidodoxcx/article/details/127884192