mysql分析之profile详解(过去用法,但常用),一篇博客帮你理解 profile 的用法

本文介绍如何使用MySQL的性能剖析功能来诊断查询效率。通过一系列命令,如开启配置、执行查询及展示剖析报告等,帮助理解SQL执行过程中的资源消耗情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在正式学习前需要测试当前的 MySQL 版本是否支持 profile ,具体命令如下所示:

select @@have_profiling

mysql分析之profile详解(已过时),一篇博客帮你理解 profile 的用法

使用该命令可以获取一个查询在整个执行过程中各个资源消耗情况,例如 CPU,IO,SWAP……
如果支持还需要查看一下 profile 是否开启,命令如下:

select @@profiling

mysql分析之profile详解(已过时),一篇博客帮你理解 profile 的用法

如果没有开启,可以通过 set profiling = 1 开启该配置。

接下来建造一张百万数据的表,然后执行下述查询。

select * from 表名;

查询一次数据,然后执行 show profiles; ,(该语句用来查看上一条SQL语句的开销信息)

mysql分析之profile详解(已过时),一篇博客帮你理解 profile 的用法

在展示出的 profiles 【剖析】中找到 QueryID ,然后在使用如下命令查看详情。

show profile for query query_id;

例如使用刚刚得到的 QueryID ,即 97 进行查询。

show profile for query 97;

mysql分析之profile详解(已过时),一篇博客帮你理解 profile 的用法

如果查询 profiles 的同时查看了 CPU 相关值。

show profile cpu for query 97;
  • CPU_user:当前用户占用的 CPU;
  • CPU_system:当前系统占用的CPU。

查看 MEMORY 部分的开销,不过这个应该是还没有实现,查询之后并无效果。

show profile memory for query 47

查看 io 部分的开销。

show profile block io for query 3

查看所有参数,使用如下命令:

show profile all for query 41

在未来的版本中 show profiles; 可能不在支持,建议使用 Performance Schema ,具体命令如下所示

select * from information_schema.profiling

接下来重点说明下表内容

mysql分析之profile详解(已过时),一篇博客帮你理解 profile 的用法

  • System lock:内核锁;
  • Sending data:从服务端发送到客户端的数据,数据量大时会出现耗时长情况,注意该内容不是网络发送,是硬盘读取;

如果学习更多可以借助一下官方手册 show-profile

记录时间

今天是持续写作的第 287 / 365 天。
可以关注我,点赞我、评论我、收藏我啦。

更多精彩


mysql分析之profile详解(已过时),一篇博客帮你理解 profile 的用法
mysql分析之profile详解(已过时),一篇博客帮你理解 profile 的用法

👇👇👇扫码加入【78技术人】~ Python 事业部👇👇👇
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值