Mysql使用SHOW PROFILE剖析单条查询的性能

一、相关的指令

#默认 show profile 是关闭的,开启分析
SET PROFILING = 1;
#查看profiles,找到相关的sql对应id
show profiles;

#查看单条记录的详细 query id;
show profile for query 29;

#产看对CPU,IO等信息
show profile cpu for query 29;

##对每一个子任务的花费时间进行已统计排序
SELECT state, SUM(duration) AS Total_R,
ROUND(100 * SUM(duration) / (SELECT SUM(duration) FROM information_schema.profiling WHERE query_id = 29), 2) AS Pct_R,
COUNT() as Calls, SUM(duration) /COUNT() AS “R/Call”
FROM information_schema.profiling
WHERE query_id = 29 GROUP BY state ORDER BY total_r DESC;

二、数据项分析

在这里插入图片描述
比较重要的耗时选项和需要优化点:
Creating sort index:当前的SELECT中需要用到临时表在进行ORDER BY排序。建议:创建适当的索引
Sending data:发送数据
table lock:表锁。
System lock:系统锁。建议确认是由于哪个锁引起的,通常是因为MySQL或InnoDB内核级的锁引起的
Sorting result:结果的排序
copying to tmp table:将数据复制到临时表
Creating tmp table:创建临时表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值