用Show Profile进行sql分析
(一).是什么
是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL调优的测量。
(二).怎么玩
1.开启
2.运行SQL
首先生成一张有百万数据的表,参考我的另一个博客jdbc生成百万数据
执行SQL,
查看结果执行命令:show profiles;
上图记录了每个查询SQL的具体语句和查询时间duration
4.诊断SQL
show profile cpu,block io for query query_id
上图记录了一条SQL的完整生命周期,出现问题(慢)的原因如下
假如出现了以下四个参数,表明SQL出现了问题
1. converting HEAP to MyISAM
查询结果太大,内存都不够用了,往磁盘上般
2. Creating tmp table
创建临时表:拷贝数据到临时表,用完再删除
3.Copying to tmp table on disk
把内存中临时表复制到磁盘,危险!!!!
4. locked
被锁住