博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【学习笔记】Mysql中通过profiling定位query性能瓶颈
阅读量:2068 次
发布时间:2019-04-29

本文共 805 字,大约阅读时间需要 2 分钟。

 

【注】:本文内容来自简朝阳编写的《mysql性能调优与架构设计》中学习摘录

要想优化一条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 参数

通过执行“set profiling”命令,可以开启关闭Query Profiler 功能。在开启Query Profiler 功能之后,MySQL 就会自动记录所有执行的Query 的profile 信息了。

2、执行query功能

3、获取系统中保存的所有Query 的profile 概要信息

通过执行“SHOW PROFILE” 命令获取当前系统中保存的多个Query 的profile 的概要信息。

4、针对单个Query 获取详细的profile 信息

在获取到概要信息之后,我们就可以根据概要信息中的Query_ID 来获取某个Query 在执行过程中详细的profile 信息了,具体操作如下:

上面的例子中是获取CPU 和Block IO 的消耗,非常清晰,对于定位性能瓶颈非常适用。希望得到取其他的信息,都可以通过执行“SHOW PROFILE *** FOR QUERY n” 来获取。

 

转载地址:http://vtdmf.baihongyu.com/

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>