首页 > 数据库技术 > 详细

show profile查看SQL执行生命周期

时间:2020-03-15 13:06:18      阅读:101      评论:0      收藏:0      [点我收藏+]

MySQL中show profile

  • 正常情况下:收到爆栈,通过开启慢日志找到SQL,然后执行explain查看SQL,是可以解决大部分问题的。但是仍然找不到问题,可以通过show profile让检测的粒度更细化,比如在传输,网络连接,死锁等现象问题排查。如果再不行就需要配合DBA,进行数据库配置文件优化。
  • show profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优测量。官网

  • 分析步骤:

    1. 查看当前MySQL版本是否支持:默认条件关闭状态,并保存最近15次运行结果。
    show variables like 'profiling';

    技术分享图片

    1. 开启功能,默认是关闭,使用前需要开启。

      set profiling=on;
    2. 运行sql:

      select * from emp group by id%10;
      select * from emp group by id%20 order by 5;
      ...
    3. 通过show profiles查看执行sql时间的结果:

      技术分享图片

      Query_ID 查询的ID
      Duration  执行时间
      Query     当前执行SQL语句
    4. 诊断SQL

      show profile cpu,block io for query [Query_ID]
      show profile cpu,block io for query 12

      技术分享图片

      这里只列出了cpu和 block io 当然 诊断类型不止这些:

      ALL 显示所有的开销信息
      BLOCK IO 显示块IO相关开销
      CONTEXT SWITCHES 上下文切换相关开销
      CPU  显示CPU相关开销信息
      IPC  显示发送和接收相关开销信息
      MEMORY 显示内存相关开销信息
      PAGE FAULTS 显示页面错误相关开销
      SOURCE  显示和Source_function,Source_file,Source_line相关的开销信息
      SWAPS   显示交换次数相关开销的信息
      • 象用什么类型只需往后加就行,常用的cpu和block io
    5. 虽然show profile让我们粒度更细的去分析整个sql生命周期,那么如何区分哪条SQL有问题呢?

      日常开发注意结论,出现以下4个就会出现很大问题:
         converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬
         Creating tmp table 创建临时表,拷贝数据到临时表,用完再删除
         Copy to tmp table on disk  把内存中临时表赋值到磁盘,很危险
         locked   存在锁

      查看id=19语句生命周期:它的时间很长

      show profile cpu,block io for query 19;

      技术分享图片

      Creating tmp table 
      Copy to tmp table
      removing tmp table
      当然会慢了

全局查询日志:

  • 只允许在测试环境上使用,永远不要在生产环境开启此功能

  • 启动

    1.终端启动:
      set global general_log=1;
      set global log_output='TABLE';
      # 以后,你所编写的sql语句,将会记录到mysql库里的general_log表中,可以用下面命令查看
      select * from mysql.general_log;
    2.配置文件启动:
      mysql的my.cnf 设置
      general_log=1
      general_log_file=/path/logfile # 记录日志文件的路径
      log_output=FILE  #输出格式

show profile查看SQL执行生命周期

原文:https://www.cnblogs.com/xujunkai/p/12496634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!