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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)