• Mysql调优(一)——性能监控


    一、大纲图

    大纲图
    【Mysql调优.xmind】

    二、Mysql调优简写

    2.1 性能监控

    2.1.1 使用show profile查询剖析工具,可以指定具体的type

    此工具默认是禁用的,可以通过服务器变量在会话级别动态的修改:

    set profiling=1;
    
    • 1

    当设置完成之后,在服务器上执行的所有语句,都会测量其耗费的时间和其他一些查询执行状态变更相关的数据。

    select * from emp;
    
    • 1

    在mysql的命令行模式下只能显示两位小数的时间,可以使用如下命令查看具体的执行时间:

    show profiles;
    
    • 1

    执行如下命令可以查看详细的每个步骤的时间:

    show profile for query 1;
    
    • 1
    • type

      • all:显示所有性能信息

        show profile all for query n
        
        • 1
      • block io:显示块io操作的次数

        show  profile block io for query n
        
        • 1
      • context switches:显示上下文切换次数,被动和主动

        show profile context switches for query n
        
        • 1
      • cpu:显示用户cpu时间、系统cpu时间

        show profile cpu for query n
        
        • 1
      • IPC:显示发送和接受的消息数量

        show profile ipc for query n
        
        • 1
      • Memory:暂未实现

      • page faults:显示页错误数量

        show profile page faults for query n
        
        • 1
      • source:显示源码中的函数名称与位置

        show profile source for query n
        
        • 1
      • swaps:显示swap的次数

        show profile swaps for query n
        
        • 1

    show profile 5.x版本可用,高版本已经被performance schema替代。

    2.1.2 使用performance schema来更加容易的监控mysql(后续补充)

    • MYSQL performance schema详解.md(附件)

    2.1.3 使用show processlist查看连接的线程个数,来观察是否有大量线程处于不正常的状态或者其他不正常的特征

    • 属性说明

      • id表示session id

      • user表示操作的用户

      • host表示操作的主机

      • db表示操作的数据库

      • command表示当前状态

        • sleep:线程正在等待客户端发送新的请求
        • query:线程正在执行查询或正在将结果发送给客户端
        • locked:在mysql的服务层,该线程正在等待表锁
        • analyzing and statistics:线程正在收集存储引擎的统计信息,并生成查询的执行计划
        • Copying to tmp table:线程正在执行查询,并且将其结果集都复制到一个临时表中
        • sorting result:线程正在对结果集进行排序
        • sending data:线程可能在多个状态之间传送数据,或者在生成结果集或者向客户端返回数据
      • info表示详细的sql语句

      • time表示相应命令执行时间

      • state表示命令执行状态

  • 相关阅读:
    【Java篇】回顾二进制文件和字节流
    脉冲神经网络入门
    200篇纪念总结
    打破运维疆界:异构复杂网络环境的集中监控和管理
    系统架构设计:8 论软件架构风格
    刚学习网格布局写一个计算器模型
    《基础IO》
    【Mysql】学习笔记
    力扣第 312 场周赛题解
    领域驱动设计——MDD
  • 原文地址:https://blog.csdn.net/moneywenxue/article/details/128195287