『Mysql进阶』Mysql SQL语句性能分析(七)

news2024/10/12 5:17:21

目录

什么是Profile?

开启Profile功能

基本使用

分析案例


什么是Profile

        Query Profiler是 MySQL 自带的一种 Query 诊断分析工具 ,通过它可以分析出一条 SQL 语句的 硬件性能瓶颈 在什么地方。 通常我们是使用的 explain ,以及 slow query log 都无法做到精确分析,但是 Query Profiler 却可以定位出一条 SQL 语句执行的各种资源消耗情况,比如 CPU IO 等,以及该 SQL 执行所耗 费的时间等。
        不过该工具只有在MySQL 5.0.37 以及以上版本中才有实现。 默认的情况下, MySQL 的该功能没有打开,需要自己手动启动

开启Profile功能

Profile 功能由 MySQL 会话变量 : profiling 控制,默认是 OFF 关闭状态。
查看是否开启了Profile功能:
select @@profiling;
-- 或者
show variables like '%profil%';
开启profile功能
-- 1是开启、0是关闭
set profiling=1; 

基本使用

语法:

SHOW PROFILE [type [, type] ... ]
    [FOR QUERY n]
    [LIMIT row_count [OFFSET offset]]

type: {
    ALL
  | BLOCK IO
  | CONTEXT SWITCHES
  | CPU
  | IPC
  | MEMORY
  | PAGE FAULTS
  | SOURCE
  | SWAPS
}
type 是可选的,取值范围可以如下:
  • ALL 显示所有性能信息
  • BLOCK IO 显示块IO操作的次数
  • CONTEXT SWITCHES 显示上下文切换次数,不管是主动还是被动
  • CPU 显示用户CPU时间、系统CPU时间
  • IPC 显示发送和接收的消息数量
  • MEMORY [暂未实现]
  • PAGE FAULTS 显示页错误数量
  • SOURCE 显示源码中的函数名称与位置
  • SWAPS 显示SWAP的次数
show profile show profiles 语句可以展示 当前会话 ( 退出 session ,profiling 重置为 0) 中执行
语句的资源使用情况 .
show profiles : 以列表形式显示最近发送到服务器上执行的语句的 资源使用情况 ,显示的记录数由变量 : profiling_history_size 控制 , 默认 15
show profile : 展示最近一条语句执行的详细资源占用信息 , 默认显示 Status Duration 两列
show profile 还可根据 show profiles 列表中的 Query_ID , 选择显示某条记录的性能分析信息
-- 查看某条SQL的性能分析信息
show profile for query 1;
-- 查看某条SQL的具体某个指标的性能分析
show profile cpu for query 1;

分析案例

查看是否打开了性能分析功能
select @@profiling;
打开 profiling 功能
set profiling=1;
执行 sql 语句
执行 show profiles 查看分析列表
找到我们执行SQL的Query_ID = 2, 执行show profile
show profile for query 2;
Status各个参数的意思:
1. starting //开始
2. checking permissions //检查权限
3. Opening tables //打开数据表
4. init //初始化
5. Systemlock//锁机制
6. optimizing //优化器
7. statistics //分析语法树
8. prepareing //预准备
9. executing //引擎执行开始
10.end//引擎执行结束
11.query end//查询结束......
12.closing tables //释放数据表
13.freeing items //释放内存
14.cleaning up //彻底清理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2207043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数学分析笔记】第5章第1节 微分中值定理(2)

5. 微分中值定理及其应用 5.1 微分中值定理 5.1.4 一阶导数与单调性的关系 【定理5.1.5】【一阶导数与单调性的关系】 f ( x ) f(x) f(x)在区间 I \textbf{I} I(可以是开区间,也可以闭区间,也可以半开半闭区间)定义且可导&…

linux基本环境配置 安装Docker RedisMysql

目录 一、安装docker 1、卸载系统之前的docker 2、安装Docker-CE 3、启动docker 4、设置docker开机自启 5、root测试docker命令 6、配置docker镜像加速 二、Docker安装Mysql 1、下载镜像文件 2、创建实例并启动 3、修改MySQL字符集 4、设置容器自启动 三、Docker安…

如何提高专利申请的成功率?

在当今充满创新与竞争的时代,专利成为了保护智力成果、赢得市场优势的重要武器。然而,专利申请并非一帆风顺,许多申请人在这一过程中面临诸多挑战,导致申请成功率不尽如人意。那么,如何才能在这复杂的专利申请之路上提…

安卓13usb触摸唤醒系统 android13触摸唤醒

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 android13在待机后,需要能够使用触摸屏去唤醒我们的系统,这就需要我们修改系统的相关配置了。 2.问题分析 对于这个问题,我们需要知道安卓的事件分发,通过事件分发,…

c#中多态的实例应用说明二(利用隐藏方法)

在C#中,多态性是通过继承和实现接口来实现的,允许编写可以使用基类型的代码,然后使用派生类型的特定行为。 一.实例界面显示 二.源码界面显示 class dad//定义基类{protected string name;//定义属性public dad(string n)//构造函数{name …

1 线性系统性能分析方法1——时域分析法

1.典型输入信号 2.阶跃响应的时域性能指标 c(t) ct(t) css(t) 暂态响应 稳态响应 2.1暂态性能指标 2.2稳态性能指标 稳态误差ess:稳定系统误差的终值。即: 3.一阶系统的时域分析 凡是可用一阶微分方程描述的系统,称为一阶系统。 T&am…

QD1-P4 HTML标题标签(h)水平线标签(hr)

本节视频 www.bilibili.com/video/BV1n64y1U7oj?p4 ‍ 本节学习: title标签(页面标题)h标签(文章标题)hr标签(横线)body标签的属性(网页背景色,字体颜色&#xff09…

专利布局的构思原则是什么,有哪些布局模式?

在知识经济时代,专利的价值愈发凸显,对于企业和创新者而言,做好专利布局是实现创新成果最大化保护和利用的关键一步。专利布局的构思原则如同基石,决定了布局的合理性和稳定性;而专利布局的模式则如建筑风格&#xff0…

React前端框架技术解析

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

docker-compose的Nacos集群(多机多节点)环境搭建与使用

上篇文写到了docker-compose的Nacos集群(单机多节点)环境搭建与使用 就有小伙伴私聊我:求多机器搭建的教程~ 谁让我如此宠粉呢,这不 它来了。老规矩 此方案已经过生产环境验证,可放心大胆使用~ 安装docker 与配置 docker-compose 步骤略过~ …

Android设置状态栏隐藏、固定颜色

设置隐藏效果&#xff1a; <?xml version"1.0" encoding"utf-8"?> <resources><style name"Theme.XiaoShuang" parent"Theme.AppCompat.Light.NoActionBar"><!--设置沉浸式通知栏--><item name"an…

机器学习第六十周周报 NLA-GNN

week 60 NLA-GNN 摘要 本周阅读了题为NLA-GNN: Non-local information aggregated graph neural network for heterogeneous graph embedding的论文。该文提出了一种新的框架——非局部信息聚合图神经网络(NLA-GNN)&#xff0c;旨在更有效地探索异构图。该框架结合了本地和非…

Iceberg 基本操作和快速入门二-Spark DDL操作

Iceberg 基本操作和快速入门一-CSDN博客 启动spark会话 docker exec -it spark-iceberg spark-sql 创建表 CREATE TABLE prod.db.sample ( id bigint NOT NULL COMMENT unique id, data string) USING iceberg; 创建分区表 CREATE TABLE prod.db.sample_par ( id bigint, …

windows server 2019中安装.net framework 3.5功能出错

转自金蝶云社区|财务金融企业信息化|IT精英人脉圈子-金蝶云社区官网 [故障现象] Windows server 2019系统安装net framework3.5时默认情况下会出现报错,提示错误:error 0x800F0954。 问题说明: 根据网上资料尝试了几种方式都不行: (1)离线下载net framework3.5进行安装(不…

【测试用例设计】一个登录界面的测试用例设计

文章目录 1. 登录页面的测试用例设计 1. 登录页面的测试用例设计

【CSS in Depth 2 精译_047】7.2 CSS 响应式设计中的媒体查询原则(上):深入理解媒体查询的类型

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第七章 响应式设计】&#xff08;概述&#xff09; 7.1 移动端优先设计原则&#xff08;上篇&#xff09; 7.1.1 创建移动端菜单&#xff08;下篇&#xff09;7.1.2 给视口添加 meta 标签&#xf…

3D渲图软件推荐:打造高质量渲染效果

在现代设计领域&#xff0c;3D渲图已经成为展示设计方案和产品外观的重要手段。无论是建筑设计、产品设计还是影视动画&#xff0c;都需要借助专业的3D渲染图软件来实现逼真的视觉效果。 本文将为您介绍几款备受好评的3D渲染图软件&#xff0c;帮助您在项目中选择合适的工具。…

每日学学Java开发规范,集合处理(附阿里巴巴Java开发手册(终极版))

前言 每次去不同的公司&#xff0c;码不同的代码&#xff0c;适应不同的规范&#xff0c;经常被老大教育规范问题&#xff0c;我都有点走火入魔的感觉&#xff0c;还是要去看看阿里巴巴Java开发规范&#xff0c;从中熟悉一下&#xff0c;纠正自己&#xff0c;码出高效&#xf…

KubeSphere v4 开源并发布全新可插拔架构 LuBan

2024 年 10 月 10 日&#xff0c;KubeSphere 开源社区激动地向大家宣布&#xff0c;KubeSphere v4&#xff08;开源版&#xff09;已正式发布&#xff0c;同时发布全新可插拔架构 KubeSphere LuBan。 相较于 KubeSphere 之前所有的版本&#xff0c;KubeSphere v4 可以说是有了…

springboot将logback替换成log4j2

一 为何要替换成log4j2 1.1 log4j2的优点 log4j2使用了两种方式记录日志&#xff1a;AsyncAppender和AsyncLogger。 1.AsyncAppender使用队列异步记录日志&#xff0c;但是一旦队列已满&#xff0c;appender线程需要等待。2.AsyncLogger是采用Disruptor&#xff0c;通过环形…