[3-01-02].第15节:调优工具 - 查看 SQL 执行成本

MySQL高级学习大纲


一、Show Profile的功能:

  • 1.Show Profile 是 MySQL 提供的可以用来分析当前会话中 SQL 都做了什么、执行的资源消耗情况的工具,可用于 SQL 调优的测量
  • 2.默认情况下处于关闭状态,并保存最近 15 次的运行结果

二、Show Profile使用:

2.1.配置开启:

  • 1.我们可以在会话级别开启这个功能:
    在这里插入图片描述

2.2.测试配置:

a.执行查询语句:

  • 1.执行相关的查询语句,产生慢查询:
    在这里插入图片描述

b.查看profiles:

  • 2.接着看下当前会话都有哪些 profiles,使用下面这条命令,能看到当前会话一共有 2 个查询。
    在这里插入图片描述

c.查看最近一次profile:

  • 1.如果我们想要查看最近一次查询的开销,可以使用: show profile;
    在这里插入图片描述
  • 2.想要查看具体某一行:show profile cpu,block io for query 2,可以看到执行过程比较慢,那么此时就可以使用explain来分析为什么执行过程这么慢,是不是因为缺少索引,字段设置的不合适,链接的表是不是太多等原因
    在这里插入图片描述

2.3.show profile常用的查询参数的含义:

  • ALL:显示所有的开销信息
  • BLOCK IO: 显示块 IO 开销
  • CONTEXT SWITCHES :上下文切换开销
  • CPU:显示 CPU 开销信息
  • IPC:显示发送和接收开销信息
  • MEMORY: 显示内存开销信息
  • PAGE FAULTS:显示页面错误开销信息
  • SOURCE:显示和 Source_function,Source_file, Source_line 相关的开销信息
  • SWAPS:显示交换次数开销信息

2.4.日常开发需要注意的结论:

  • 1.converting HEAP to MyISAM 查询结果太大,内存不够,数据往磁盘上搬了
  • 2.Creating tmp table 创建临时表。先拷贝数据到临时表,用完后再删除临时表
  • 3.Copying to tmp table on disk 把内存中临时表复制到磁盘上,需要警惕!
  • 4.locked:加锁

如果在 show profile 诊断结果中出现了以上 4 条结果中的任何一条,则 SQL 语句需要优化

注意:不过 SHOW PROFILE 命令将被弃用,我们可以从 information_schema 中的 profiling 数据表进行查看

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式 | 单例模式

单例模式(Singleton Pattern) 是设计模式中最简单却最常用的模式之一,它确保一个类只有一个实例,并提供全局访问点。本文将深入探讨单例模式的核心思想、实现技巧以及在C中的多种实现方式。 为什么需要单例模式? 在软…

Docker快速部署可视化防火墙工具:使用go语言开发,底层是iptables,提供API调用

以下是对该工具的简要介绍: 该工具相关接口使用go语言开发,高性能,资源占用低,前端页面使用Ant Design Pro开发,简洁美观底层基于iptables,可以针对不同的IP、不同协议进行有效拦截支持定时封禁控制&#…

Python 实现弹球小游戏:基于 Tkinter 的趣味互动开发

一、项目简介 本项目利用 Python 的 Tkinter 库开发了一个简单的弹球小游戏。游戏中,红色小球在画布内运动,蓝色 paddle(挡板 )可(后续可扩展交互逻辑 )拦截小球,若小球触碰画布底部则游戏结束&…

写字楼里的薄荷糖

林小满第一次注意到陈屿,是在茶水间。 她抱着一摞设计稿转弯,差点撞上迎面而来的人。文件散落一地,其中几张还沾了他手里马克杯溢出的咖啡。“抱歉抱歉!”林小满手忙脚乱地蹲下去捡,抬头时撞进一双含笑的眼睛里。 “没…

动态内存管理

本章重点 1.为什么存在动态内存分配 2.动态内存函数的介绍 3.malloc free calloc realloc 4.常见的动态内存错误 一.为什么存在动态内存分配 二.动态内存函数的介绍 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include &…

人工智能、机器人最容易取哪些体力劳动和脑力劳动

人工智能、机器人最容易取哪些体力劳动和脑力劳动 人工智能和机器人的发展可以替代人类简单的体力劳动和脑力劳动&#xff0c;但很难替代复杂的体力劳动和脑力劳动。 肌肉收缩的原理和运动特点 人类的体力劳动是靠肌肉的收缩完成的&#xff0c;其工作原理是肌肉内的肌球蛋白…

DeepSeek技术解析:开源大模型的创新突围之路

在人工智能领域&#xff0c;DeepSeek正以颠覆者的姿态重新定义大模型研发范式。作为杭州深度求索人工智能基础技术研究有限公司自主打造的通用人工智能平台&#xff0c;DeepSeek凭借自研训练框架、自建万卡级智算集群&#xff0c;成功突破算力与成本的双重瓶颈&#xff0c;被业…

多设备Obsidian笔记同步:WebDAV与内网穿透技术高效实现教程

文章目录 前言1. Windows开启Webdav服务2. 客户端测试3. 安装Cpolar内网穿透实现公网访问Webdav4. 同步PC端笔记至WebDav4.1 首先需要在IIS中添加md的格式4.2 在Obsidian中安装第三方插件 5. 同步手机端笔记至WebDav 前言 各位好&#xff01;在数字化浪潮席卷的当下&#xff0…

学习设计模式《十四》——组合模式

一、基础概念 组合模式的本质是【统一叶子对象和组合对象】&#xff1b; 组合模式的定义&#xff1a;将对象组合成树型结构以表示“部分-整体”的层次结构&#xff1b;组合模式使得用户对单个对象和组合对象的使用具有一致性。 认识组合模式 序号认识组合模式说明1组合模式的目…

人人都是音乐家?腾讯开源音乐生成大模型SongGeneration

目录 前言 一、SongGeneration 带来了什么&#xff1f; 1.1 文本控制与风格跟随&#xff1a;你的想法&#xff0c;AI 精准实现 1.2 多轨生成&#xff1a;从“成品”到“半成品”的巨大飞跃 1.3 开源&#xff1a;推倒“高墙”&#xff0c;共建生态 二、3B 参数如何媲美商业…

JAVA锁机制:对象锁与类锁

JAVA锁机制&#xff1a;对象锁与类锁 在多线程编程中&#xff0c;合理使用锁机制是保证数据一致性和线程安全的关键。本文将通过示例详细讲解 Java 中的对象锁和类锁的原理、用法及区别。 一、未加锁的并发问题 先看一段未加锁的代码&#xff1a; public class Synchronize…

课程目录:腾讯混元3D × Unity3D全流程开发

结合腾讯混元3D与Unity3D的设计课程&#xff0c;可构建一套覆盖“AI辅助创作→模型优化→引擎集成→实战开发”的全链路学习体系。以下是系统化的课程框架及资源推荐&#xff1a; &#x1f4da; 一、基础入门&#xff1a;双工具核心操作 Unity3D基础 界面与工作流&#xff1a;场…