当前位置: 首页 > news >正文

[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 数据表进行查看

相关文章:

  • FastGPT极速上手指南:Docker容器化部署实战
  • 《Effective Python》第十章 健壮性——使用 assert 和 raise 提升 Python 程序的健壮性
  • 松灵 PiPER 高性价比突围:如何在AI领域筑牢技术壁垒
  • Ceph集群存储部署
  • 用无人机和AI守护高原净土:高海拔自然保护区的垃圾检测新方法
  • 【Java高频面试问题】数据结构篇
  • Arrays.asList和 List<String> list = new ArrayList<>();有什么区别
  • 火山引擎大模型未来发展趋势
  • C++ Vector 基础入门操作
  • 经济学神图:洛伦兹曲线
  • Auto-GPT vs ReAct:两种智能体思路对决
  • Nginx与Tomcat:谁更适合你的服务器?
  • Redis Stream 消息队列详解及 PHP 实现
  • Redis主从、哨兵、 Cluster集群区别
  • [k8s]-疑问:pod重新分配到同样的node上,pullpolicy是always,会存储两份相同的镜像吗?
  • Linux 系统管理核心命令详解:系统监控 + 用户管理全攻略
  • linux系统SVN快速上手指南
  • leetcode543-二叉树的直径
  • 融合LSTM与自注意力机制的多步光伏功率预测新模型解析
  • leetcode:98. 验证二叉搜索树
  • 做网站空间重要还是程序重要/外汇交易平台
  • 什么叫网站根目录/最新新闻
  • 网页的后缀名有那些/兰州网站seo
  • 彩票网站建设多少钱/深圳竞价托管公司
  • 创意图案设计网站/个人可以做推广的平台有哪些
  • 中冶交通建设集团网站/宁波正规优化seo软件