MySQL高级---B站学习总结---查询截取分析之Show Profile

MySQL高级—B站学习总结—查询截取分析之Show Profile

 

一、show profile是什么

是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量

二、show profile默认情况

默认情况下,参数处于关闭状态,并保存最近15次的运行结果

三、show profile分析步骤

分析步骤
  1. 是否支持,看看当前的mysql版本是否支持:Show variables like 'profiling';查看状态,默认是关闭,使用前需要开启

  2. 开启功能,默认是关闭,使用前需要开启:set profiling=on;

  3. 运行SQL

    1. select * from emp group by id%10 limit 150000;
    2. select * from emp group by id%20 order by 5
  4. 查看结果,执行命令:show profiles;

  5. 诊断SQL:show profile cpu,block io for query n (n为上一步前面的问题SQL数字号码);
    例子: show profile cpu,block io for query 124
    在这里插入图片描述
    参数备注
    type:
    | ALL --显示所有的开销信息
    | BLOCK IO --显示块IO相关开销
    | CONTEXT SWITCHES --上下文切换相关开销
    | CPU --显示CPU相关开销信息
    | IPC --显示发送和接收相关开销信息
    | MEMORY --显示内存相关开销信息
    | PAGE FAULTS --显示页面错误相关开销信息
    | SOURCE --显示和Source_function,Source_file,Source_line相关的开销信息
    | SWAPS --显示交换次数相关开销的信息

  6. 日常开发需要注意的结论

    1. 通过show profile cpu,block io for query n查询后出现 converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬了。
    2. Creating tmp table 创建临时表
      1. 拷贝数据到临时表
      2. 用完再删除
    3. Copying to tmp table on disk 把内存中临时表复制到磁盘,危险!!!
    4. locked

很危险,很耗费时间的操作

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值