MySQL Show Profile

1、show profile 是什么?

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

-- 默认情况下,参数处于关闭状态,并保存最近15次的运行结果。
show variables like 'profiling%';
-- 开启profile
set profiling=on;
set profiling_history_size=50;

2、诊断sql

show profiles;
show profile cpu, block io for query 问题sql数字号码;
show profile all for query 144;

-- 日常开发需要注意的结论:
converting HEAP to MyISAM : 查询结果太大,内存都不够用了,往磁盘上搬了;
creating tmp table :创建临时表,拷贝数据到临时表,然后再删除;
copying to tmp table on disk :把内存中临时表复制到磁盘,危险!!!
locked

注:以下四个中若出现一个或多个,表示sql 语句 必须优化。

type: 
  ALL --显示所有的开销信息 
  BLOCK IO --显示块IO相关开销 
  CONTEXT SWITCHES --上下文切换相关开销 
  CPU --显示CPU相关开销信息 
  IPC --显示发送和接收相关开销信息 
  MEMORY --显示内存相关开销信息 
  PAGE FAULTS --显示页面错误相关开销信息 
  SOURCE --显示和Source_function,Source_file,Source_line相关的开销信息 
  SWAPS --显示交换次数相关开销的信息
  Status : sql 语句执行的状态
  Duration: sql 执行过程中每一个步骤的耗时
  CPU_user: 当前用户占有的cpu
  CPU_system: 系统占有的cpu
  Block_ops_in : I/O 输入
  Block_ops_out : I/O 输出

总结:

show profile默认是关闭的,并且开启后只存活于当前会话,也就说每次使用前都需要开启。
通过show profiles查看sql语句的耗时时间,然后通过show profile命令对耗时时间长的sql语句进行诊断。
注意show profile诊断结果中出现相关字段的含义,判断是否需要优化sql语句。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • show profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具。 1.查看Sh...
    JuMinggniMuJ阅读 334评论 0 0
  • 一、Show Profile MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,用于SQL的调优的测量 ...
    紫荆秋雪_文阅读 385评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,792评论 28 54
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,332评论 4 8
  • 怎么对待生活,它也会怎么对你 人都是哭着来到这个美丽的人间。每个人从来到尘寰到升入天堂,整个生命的历程都是一本书,...
    静静在等你阅读 5,207评论 1 6

友情链接更多精彩内容