Show profile 分析mysql

2.

通过 Show Profile 分析 SQL 执行性能
上述通过 EXPLAIN 分析执行计划,仅仅是停留在分析 SQL 的外部的执行情况,如果我们
想要深入到 MySQL 内核中,从执行线程的状态和时间来分析的话,这个时候我们就可以
选择 Profile。
Profile 除了可以分析执行线程的状态和时间,还支持进一步选择 ALL、CPU、MEMORY、
BLOCK IO、CONTEXT SWITCHES 等类型来查询 SQL 语句在不同系统资源上所消耗的时
间。以下是相关命令的注释:

值得注意的是,MySQL 是在 5.0.37 版本之后才支持 Show Profile 功能的,如果你不太确
定的话,可以通过 select @@have_profiling 查询是否支持该功能,如下图所示:

最新的 MySQL 版本是默认开启 Show Profile 功能的,但在之前的旧版本中是默认关闭该
功能的,你可以通过 set 语句在 Session 级别开启该功能:

Show Profiles 只显示最近发给服务器的 SQL 语句,默认情况下是记录最近已执行的 15
条记录,我们可以重新设置 profiling_history_size 增大该存储记录,最大值为 100

获取到 Query_ID 之后,我们再通过 Show Profile for Query ID 语句,就能够查看到对应
Query_ID 的 SQL 语句在执行过程中线程的每个状态所消耗的时间了:

通过以上分析可知:SELECT COUNT(*) FROM `order`; SQL 语句在 Sending data 状态所
消耗的时间最长,这是因为在该状态下,MySQL 线程开始读取数据并返回到客户端,此时
有大量磁盘 I/O 操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值