Mysql中show profile的使用

Mysql中show profile的使用

1、Show profile它是什么?

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

默认情况下,参数处于关闭状态,并保存最近15次的运行结果。
Show variable like ‘profiling’;


2、开启profile:set profiling=on;

开启后,mysql会记录所有sql语句的执行消耗信息。


3、查看profiles:show profiles;

信息包括:Query_ID(查询id),Duration(耗时),Query(语句)

诊断sql,查看sql语句消耗的具体资源:
Show profile cpu, block io for query id; // 这个id是Query_ID

例如:Show profile cpu, block io for query 3;
在这里插入图片描述

常用显示类型有:cpu, block io, memory;

显示的消耗信息类型有如下:

  • all,显示所有的开销信息
  • block io,显示块IO相关开销
  • context switches,上下文切换相关开销
  • cpu,显示cpu相关开销
  • ipc,显示发送和接收相关开销信息
  • memory,显示内存相关开销
  • page faults,显示页面错误相关开销
  • source,显示和Source_function, Source_file, Source_line相关的开销
  • swaps,显示交换次数相关开销

我们可以看到上面status字段中显示了3号sql整个执行流程状态。
但这些状态耗时还是非常小,表示正常。

有4种常用耗时状态:

(1)converting HEAP to MyISAM,查询结果太大,内存不够用,开始往磁盘上搬;
(2)Creating tmp table,创建临时表,还包括拷贝数据到临时表,用完再删除;
(3)Copying to tmp table on disk,把内存中临时表复制到磁盘上,此操作危险!!
(4)locked,表中相关数据被锁定;

再看另一条sql的执行消耗的部分信息:
在这里插入图片描述

我们可以看到使用了临时表,其中拷贝临时表数据就花了2.58秒;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值