• 调优工具常用命令


    语法格式

    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 次的运行结果

  • 相关阅读:
    Contact us
    Laravel 安装(笔记一)
    40-Jenkins-环境变量的使用
    如何在IPhone 14、14 Pro和14 Pro Max上添加屏幕锁定
    java反射(易懂)
    MutationObserver对象
    力扣 每日一题 1235. 规划兼职工作【难度:困难,rating: 2022】(动态规划+二分查找)
    3.6 OrCAD中元器件应该怎么进行镜像与翻转?
    学习记忆——宫殿篇——记忆宫殿——记忆桩——风景
    【MyBatis笔记02】MyBatis核心配置文件介绍
  • 原文地址:https://blog.csdn.net/feidodoxcx/article/details/127884192