MySQL使用SHOW PROFILE进行SQL分析
SHOW PROFILE 是MySQL提供可以用来分析当前会话语句执行的资源消耗情况,可以用于SQL 的调优测评依据。在默认的情况下,参数处于关闭状态,并保存着最近15 次的运行结果。
我们可以通过 SHOW VARIABLES LIKE ‘PROFILING’; 命令查看参数的开关情况;通过 SET PROFILING = ON; 命令设置开启状态。
我们看看当我们执行SHOW PROFIES; 会查询到些什么?
Query_ID Duration Query
152 0.0012655 SHOW STATUS
153 0.00120325 SELECT QUERY_ID, SUM(DURATION) AS SUM_DURATION FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID
154 0.0002665 SELECT STATE AS `状态`, ROUND(SUM(DURATION),7) AS `期间`, CONCAT(ROUND(SUM(DURATION)/0.001724*100,3), '%') AS`百分比` FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID=151 GROUP BY STATE ORDER BY SEQ
155 0.000189 SET PROFILING=1
156 0.00206525 SHOW STATUS
157 0.001668 SHOW STATUS
158 0.00054625 SELECT * FROM t_emp WHERE dept_id in (SELECT dept_id FROM t_dept) LIMIT 5
159 0.001448 SHOW STATUS
160 0.00115475 SELECT QUERY_ID, SUM(DURATION) AS SUM_DURATION FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID
161 0.00026725 SELECT STATE AS `状态`, ROUND(SUM(DURATION),7) AS `期间`, CONCAT(ROUND(SUM(DURATION)/0.000550*100,3), '%') AS `百分比` FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID=158 GROUP BY STATE ORDER BY SEQ
162 0.00019575 SELECT * FROM `ssm_crud`.`t_emp` LIMIT 0
163 0.0007275 SHOW COLUMNS FROM `ssm_crud`.`t_emp`
164 0.0001305 SET PROFILING=1
165 0.00131475 SHOW STATUS
166 0.0011755 SHOW STATUS
Query_ID表示从连接上数据库到现在执行的SQL 语句序号,Duration 表示执行该SQL 所耗费的时间(S),Query 表示执行的操作。
如果我们想要具体的知道执行SQL 时CPU 与 I/O 的消耗,可以使用 SHOW PROFILE CPU ,BLOCK IO FOR QUERY Query_ID; 命令。
通过下图我们可以通过Status 属性清楚的知道MySQL在执行SQL 语句时每个阶段所消耗的时间,CPU 内存 与 I/O 资源。
但是如果在Status 属性中我们看到了如下表中的一些值,就说明我们的SQL 在执行会消耗大量的时间,需要优化。由于我本地的数据库中只有很少的数据信息,并没有出现下面的情况。
Status | 介绍 |
---|---|
converting HEAP to MyISAM | 查询结果集太大,内存不够借用磁盘空间 |
Creating tmp table | 拷贝数据到临时表(先创建,然后拷贝数据,用完后会自动删除),很消耗资源 |
Coping to tmp table on disk | 把内存中的临时表复制到磁盘,很危险 |
locked | 加锁 |
MySQL使用SHOW PROFILE进行SQL分析相关推荐
- MySQL优化篇:show profile进行SQL分析
文章目录 1.SQL分析.调优和排查的大体流程 2.show profile是什么 3.show profile分析步骤 (1)是否支持,看看当前的MySQL版本是否支持 (2)开启功能,默认是关闭, ...
- Mysql慢查询深入剖析_《深入精通Mysql(六)》系列之如何通过慢查询日志进行SQL分析和优化...
深入精通Mysql系列其他文章推荐: 从本系列第一篇<深入精通Mysql(一)>系列之Mysql整体架构和sql执行过程我们就可以知道一条sql语句的执行过程会经过优化器进行优化. 优化器 ...
- mysql 慢sql分析_如何分析Mysql慢SQL
内容摘要: 开启慢查询日志捕获慢SQL 使用explain分析慢SQL 使用show profile查询SQL执行细节 常见的SQL语句优化 一.开启慢查询日志捕获慢SQL ① 查询mysql是否开启 ...
- mysql的show profile使用总结
目录 前言: 1.分析步骤 2.总结 前言: Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量.默认情况下处于关闭状态,并保存 ...
- MySQL高级show profile
show profile分析SQL Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持.show profiles 能够在做SQL优化时帮助 ...
- mysql pt_MySQL慢查询之pt-query-digest分析慢查询日志
一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdu ...
- MySQL的show profile(已过时)简介以及该功能在MySQL 5.7中performance_schema中的替代
本文出处:http://www.cnblogs.com/wy123/p/6979499.html show profile 命令用于跟踪执行过的sql语句的资源消耗信息,可以帮助查看sql语句的执行情 ...
- 详解MySQL的逻辑架构和SQL语句执行流程
文章目录 1. 逻辑架构 1.1 连接层 1.2 服务层 1.3 引擎层 1.3.1 InnoDB 存储引擎 1.3.2 MyISAM 存储引擎 1.3.3 其他存储引擎 1.4 存储层 3. SQL ...
- Java基础语法教学视频,MySql知识体系总结(SQL优化篇
备注:因为mysql优化器的缘故,与索引顺序不一致,也会触发索引,但实际项目中尽量顺序一致. 5.联合索引,但其中一个条件是 > 6.联合索引,order by where和order by一起 ...
最新文章
- 详解MariaDB数据库的存储过程
- Bootstrap组件_导航
- phpStorm安装xDebug
- 如何在SAP Cloud Platform上进行第一个integration flow开发
- dax 筛选 包含某个字_Power BI 利器——DAX
- linux中c语言延时毫秒函数,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
- php 微信扫码给红包,关于现金红包的详细介绍
- IDEA中自动导包及快捷键
- 腾讯通RTX 多文件服务器部署
- 有负数c语言除法,C语言负数的除法和求余运算
- 基于python的web框架——Flask 学习笔记
- CAN 报文编码学习笔记二:汽车CAN协议测试——发送与接收
- 理解的三极管输出特性曲线图的放大区和饱和区,利用∆Ic小于∆βIb差值比较曲线左移右移关系
- 懒羊羊的作业:看过国产动画片的同学都知道,懒羊羊是一只非常懒的羊,整天除了吃就是睡,根本没有时间做作业。明天就是周一了,村长慢羊羊留的作业:把 n 个整数从大到小排序,它还没开始写...
- 怎样用CSS画一个三角形
- ssm基于jsp的在线点餐系统 毕业设计源码111016
- [英语] It_be_XXX_that_YYY强调句句式
- 网络编程培训之六 使用原始套接字实现Ping
- shiro 拦截器链
- Julia实现GCC-PHAT算法
热门文章
- Spring Boot-@Value获取值和@ConfigurationProperties获取值的比较
- Go——连接 JFrog Artifactory 简单测试
- Python——制作深度学习数据集批量重命名图片文件名解决方案
- PaddleOCR——Docker环境下基于HubServing模式部署Restful API服务(CPU版本)
- JAVA——DES/ECB/PKCS7Padding加密算法[Cannot find any provider supporting DESEDE/CBC/PKCS7Padding]解决方案
- Vue-CLI@4——html-webpack-plugin默认配置的获取与修改
- Vue + Bootstrap|Element UI——模态框被遮罩层遮盖问题解决方案
- Thymeleaf——访问静态资源(static)解决方案
- robomaster视觉组代码中的一些函数
- JavaScript基础05-day07【条件运算符、运算符优先级、代码块、if语句】