MySQL高级开发--慢查询日志分析(二)--分析慢SQL(show profile)

MySQL高级开发–慢查询日志分析(二)–分析慢SQL(show profile)

标签(空格分隔): MySQL


上文中已经通过开启慢查询日志已经将需要分析的SQL通过mysqldumper工具抓取出来了,然后我们需要根据一些分析手段分析这些SQL进行分析,除了之前讲过的通过执行计划分析之后,如果问题得不到解决的话,那就需要通过show profile 获取sql的执行信息。

show profile是什么

SHOW PROFILE是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优测量(连接时长,锁表时长等信息)

怎么使用它

1.判断当前版本是否支持该分析命令

#默认情况是关闭的,需要使用时开启
show varibles like 'profiling';

2.开启功能,默认是关闭,使用前需要开启

set profiling = on;

3.运行指定SQL
4.查看结果:show profiles;
会列出所有在这个开启期间执行的SQL,并附上QUERY ID

5.诊断SQL

show profile cpu,block io for queryid # queryid 对应4中的查询id

除了上面的cpu、block io还有以下几个类型:

ALL : 显示所有的开销信息
BLOCK IO : 显示块IO相关开销
CONTEXT SWITCHES : 上下文切换相关开销
CPU : 显示CPU相关开销信息
IPC : 显示发送和接收相关开销信息
MEMORY : 显示内存相关开销信息
PAGE FAULTS : 显示页面错误相关开销信息
SOURCES :显示Source_function,Source_file,Source_line相关开销信息
SWAPS : 显示交换次数相关开销信息

6.在日常开发中,分析中需要注意的几个点

converting HEAP to MyISAM查询结果太大,内存都不够用了,往磁盘上搬
Creating tmp table 创建临时表进行计算
Copying to tmp table on disk 把内存中的临时表复制到磁盘
locked

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值