MySQL Profiling 的使用
在本章第一节中我们还提到过通过 Query Profiler 来定位一条 Query 的性能瓶颈,这里我们再详细介绍一下 Profiling 的用途及使用方法。
要想优化一条 Query,我们就需要清楚的知道这条 Query 的性能瓶颈到底在哪里,是消耗的 CPU计算太多,还是需要的的 IO 操作太多?要想能够清楚的了解这些信息,在 MySQL 5.0 和 MySQL 5.1正式版中已经可以非常容易做到了,那就是通过 Query Profiler 功能。
MySQL 的 Query Profiler 是一个使用非常方便的 Query 诊断分析工具,通过该工具可以获取一条Query 在整个执行过程中多种资源的消耗情况,如 CPU,IO,IPC,SWAP 等,以及发生的 PAGE FAULTS,CONTEXT SWITCHE 等等,同时还能得到该 Query 执行过程中 MySQL 所调用的各个函数在源文件中的位置。
下面我们看看 Query Profiler 的具体用法。
1、 开启 profiling 参数
root@localhost : (none) 10:53:11> set profiling=1; Query OK, 0 rows affected (0.00 sec)
通过执行 “set profiling”命令,可以开启关闭 Query Profiler 功能。
2、 执行 Query
... ... root@localhost : test 07:43:18> select status,count(*) -> from test_profiling group by status; +----------------+----------+ | status | count(*) | +----------------+----------+ | st_xxx1 | 27 | | st_xxx2 | 6666 | | st_xxx3 | 292887 | | st_xxx4 | 15 | +----------------+----------+ 5 rows in set (1.11 sec) ... ...
在开启 Query Profiler 功能之后,MySQL 就会自动记录所有执行的 Query 的 profile 信息了。
3、获取系统中保存的所有 Query 的 profile 概要信息
root@localhost : test 07:47:35> show profiles; +----------+------------+------------------------------------------------------------+ | Query_ID | Duration | Query | +----------+------------+------------------------------------------------------------+ | 1 | 0.00183100 | show databases | | 2 | 0.00007000 | SELECT DATABASE() | | 3 | 0.00099300 | desc test | | 4 | 0.00048800 | show tables | | 5 | 0.00430400 | desc test_profiling | | 6 | 1.90115800 | select status,count(*) from test_profiling group by status | +----------+------------+------------------------------------------------------------+ 3 rows in set (0.00 sec)
通过执行 “SHOW PROFILE” 命令获取当前系统中保存的多个 Query 的 profile 的概要信息。
4、针对单个 Query 获取详细的 profile 信息。
在获取到概要信息之后,我们就可以根据概要信息中的 Query_ID 来获取某个 Query 在执行过程中
详细的 profile 信息了,具体操作如下:
上面的例子中是获取 CPU 和 Block IO 的消耗,非常清晰,对于定位性能瓶颈非常适用。希望得到取其他的信息,都可以通过执行 “SHOW PROFILE *** FOR QUERY n” 来获取,各位读者朋友可以自行测试熟悉。
转自 《MySQL性能优化与架构设计》
MySQL Profiling 的使用相关推荐
- mysql profiling表_Mysql-性能分析(profiling 工具)
Mysql-性能分析(profiling 工具) 说明 profiling 工具可以用来查看sql语句的执行时间,可以用来查看sql语句的详细执行过程 基本命令 1.查看profiling的开启情况, ...
- mysql profiling表_mysql8 参考手册-INFORMATION_SCHEMA PROFILING表
PROFILING表提供语句分析信息.其内容对应于SHOW PROFILE和SHOW PROFILES 语句产生的信息(请参见第13.7.7.30节" SHOW PROFILE语句" ...
- mysql profiling 应用
1)先打开profiling ==> set profiling = 1; mysql> set profiling = 1; Query OK, 0 rows affected (0.0 ...
- mysql profiling详解_使用mysql profiling功能剖析单条查询
5.1版本开始引入show profile剖析单条语句功能,支持show profiles和show profile语句,参数have_profiling;控制是否开启: 查看是否支持这个功能(查询为 ...
- MySQL全面优化,速度飞起来
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已. 图-MySQL查询过程 一.优化的哲学 ...
- MySQL 性能优化之高阶神技
一.前言 MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰. 在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询 ...
- mysql sql 1到10_(1.10)SQL优化——mysql 常见SQL优化
(1.10)常用SQL优化 insert优化.order by 优化 1.insert 优化 2.order by 优化 [2.1]mysql排序方式: (1)索引扫描排序:通过有序索引扫描直接返回有 ...
- 攻破MySQL性能瓶颈必知的调优技巧
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 来源:clsn.io/clsn/lx287.html 一.前言 MySQL调优对于很多程序员 ...
- 史上最全的MySQL高性能优化实战总结!
https://www.jianshu.com/p/4af41b682e06 1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思 ...
最新文章
- Ubuntu下载地址
- 快速学习使用springmvc、strust2、strust1以及它们的对比
- [转] vim自定义配置 和 在ubnetu中安装vim
- markdown 常用语法总结 - 个人版
- 正则表达式与python re
- python炒股日记_自学python的日记分享
- python两大特性与四大语法_Day 1:Python 两大特性和四大基本语法
- 伪标记是一种简单的半监督学习方法
- HEVC帧间预测之三——TEncCu::xCheckRDCostMerge2Nx2N函数分析
- 由PPP项目总结的几点项目经验
- SaaS第一,股价暴涨,25年的金蝶迎来第二春
- TDB和SPARQL
- Pytorch模型通过paddlelite部署到嵌入式设备
- C语言文件输入输出函数总结
- 多可文档管理系统_您的框架有多可扩展性?
- 零线和地线接反了会发生什么?
- html元素的overflow属性详解
- 记录写博文用到的一些工具
- solar2lunar 实现农历、天干地支
- 董导微博rust视频_如何评价综艺节目《歌手2019》第十一期?