0

0

MySQL SHOW PROFILE(剖析报告)的查看

php中文网

php中文网

发布时间:2016-06-07 16:40:38

|

1374人浏览过

|

来源于php中文网

原创

SHOW PROFIL命令是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量。

前言:show profil命令是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于sql的调优的测量。

一、参数的开启和关闭设置

1.1  参数的查看

默认情况下,参数处于关闭状态,并保存最近15次的运行结果


mysql>  show variables like 'profiling%';

+------------------------+-------+

| Variable_name          | Value |

+------------------------+-------+

| profiling              | OFF  |

| profiling_history_size | 15    |

+------------------------+-------+

2 rows in set 

1.2 参数的开启和关闭(参数为会话级参数,只对当前会话有效)

开启操作如下:

mysql> SET profiling=1;或 SET profiling=on;


mysql>  SET profiling=on;

Query OK, 0 rows affected

 

mysql>  show variables like 'profiling%';

+------------------------+-------+

| Variable_name          | Value |

+------------------------+-------+

| profiling              | ON    |

| profiling_history_size | 15    |

+------------------------+-------+

2 rows in set

关闭的操作:
mysql> SET profiling=0;或 SET profiling=off;

二、操作步骤

2.1 进行开启操作: SET profiling=on;

2.2 运行相应的SQL语句;

2.3 查看总体结果:show profiles;

2.4 查看详细的结果:SHOW PROFILE FOR QUERY n,这里的n就是对应SHOW PROFILES输出中的Query_ID;


mysql> show profiles;

+----------+------------+------------------------------------+

| Query_ID | Duration  | Query                              |

+----------+------------+------------------------------------+

|        1 | 0.00077425 | select count(*) from tab_user_info |

|        2 |  0.0013575 | select count(*) from tab_tel_area  |

|        3 |    9.7E-5 | select count(*) from tab_tel_area  |

|        4 |  0.005193 | show variables like 'profiling%'  |

+----------+------------+------------------------------------+

4 rows in set

 

mysql> show profile for query 2;

+--------------------------------+----------+

| Status                        | Duration |

+--------------------------------+----------+

| starting                      | 2E-5    |

| checking query cache for query | 4.7E-5  |

| Opening tables                | 0.001163 |

| System lock                    | 4E-6    |

| Table lock                    | 4.1E-5  |

| init                          | 1.6E-5  |

| optimizing                    | 6E-6    |

| executing                      | 1.4E-5  |

| end                            | 5E-6    |

| query end                      | 3E-6    |

| freeing items                  | 3.1E-5  |

| storing result in query cache  | 5E-6    |

| logging slow query            | 3E-6    |

| cleaning up                    | 2E-6    |

+--------------------------------+----------+

14 rows in set

说明:报告给出了查询执行的每个步骤及花费的时间,当语句是很简单的一次执行的时候,可以很清楚的看出语句每个顺序花费的时间,但是当语句是嵌套循环等操作的时候,看这个报告就会变得很痛苦,因此整理了以下语句对相同类型的操作进行汇总,脚本如下:

mysql> SET @QUERY_ID=1;

mysql> SELECT STATE,SUM(DURATION) AS TOTAL_R,

ROUND(100*SUM(DURATION)/(SELECT SUM(DURATION)

FROM INFORMATION_SCHEMA.PROFILING

WHERE QUERY_ID=@QUERY_ID),2) AS PCT_R,

COUNT(*) AS CALLS,

SUM(DURATION)/COUNT(*) AS "R/CALL"

FROM INFORMATION_SCHEMA.PROFILING

WHERE QUERY_ID=@QUERY_ID

GROUP BY STATE

ORDER BY TOTAL_R DESC;

总结:这个工具又让我联想到了Oracle的autotrace工具,如果有相应的执行计划一起带出来,,那么对语句的调优帮助将更大;

--------------------------------------分割线 --------------------------------------

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

MySQL-5.5.38通用二进制安装

--------------------------------------分割线 --------------------------------------

本文永久更新链接地址:

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.6万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 778人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号