MySQL-Show Profile

简介: Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。
 
1、开启show profile功能,默认该功能是关闭的,使用前需开启
mysql> show variables like 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling     | OFF   |
+---------------+-------+
1 row in set (0.00 sec)
 
mysql> set profiling=ON;
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql>
mysql> show variables like 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling     | ON    |
+---------------+-------+
1 row in set (0.01 sec)
 
2、随意对某张表进行查询
3、使用show profiles查询结果 
4、使用show profile对sql语句进行诊断
show  profile cpu, block io  for   query   Query_ID;     #Query_ID就是步骤三种show   profiles列表中的Query_ID 
 
 

5、show profile的常用查询参数
①ALL:显示所有的开销信息;
②BLOCK IO:显示块IO开销;
③CONTEXT SWITCHES:上下文切换开销;
④CPU:显示CPU开销信息;
⑤IPC:显示发送和接收开销信息;
⑥MEMORY:显示内存开销信息;
⑦PAGE FAULTS:显示页面错误开销信息;
⑧SOURCE:显示和Source_function,Source_file,Source_line相关的开销信息;
⑨SWAPS:显示交换次数开销信息;
6、通过show profile诊断,如果status中出现如下几种 值,则表明该sql需要优化
①converting  HEAP to MyISAM:查询结果太大,内存不够,数据往磁盘上搬了。
②Creating tmp table:创建临时表。先拷贝数据到临时表,用完后再删除临时表。
③Copying to tmp table on disk:把内存中临时表复制到磁盘上,危险!!!
④locked
posted @ 2022-12-21 10:49  Harda  阅读(19)  评论(0编辑  收藏  举报