1. 通过SHOW STATUS获取更多信息

在调试mysql语句时,如果执行计划不能提供足够的信息支持判断,可以通过在语句执行前执行FLUSH STATUS,执行完语句后执行SHOW STATUS LIKE 获取更多信息,例如:

SHOW STATUS WHERE Variable_name LIKE 'Handler%' OR variable_name LIKE 'Created%';其执行部分结果解释如下:

属性

释义

Created_tmp_disk_tables

语句执行时,Mysql创建的磁盘临时表个数;越少越好

Created_tmp_files

语句执行时,Mysql创建的临时文件个数;

Created_tmp_tables

语句执行时,Mysql创建的临时表总个数;越少越好

Handler_read_first

读取第一条索引的次数;

此值越高,表明Mysql进行了多次的全索引扫描(full index scan);而当数据在磁盘不在内存中时,全索引扫描通常会导致许多随机读(random read),这通常比全表扫描(full table scan)采用的顺序扫描性能更差;

Handler_read_key

通过索引读取数据的次数;

此值越高表示查询正确地走了索引;

Handler_read_next

通过索引顺序读取下一行的次数;当出现索引覆盖扫描或者通过在索引列限制了范围时,该次数会增加;

Handler_read_prev

通过索引顺序读取前一行的次数;这种读取方式主要用于对ORDER BY … DESC 语句的优化中

Handler_read_rnd

通过固定的位置读取一行数据的次数;越低越好;

通常在需要对结果排序时,此值会比较高;

表明可能存在全表扫描或者不恰当的join

Handler_read_rnd_next

通过直接读取数据文件获取下一行数据的次数;越低越好;

通常在进行数据扫描时,此值会比较高;// TODO

通常表明索引设置不当或者查询未有效利用索引;

Handler_write

向表中插入数据的次数;

在生成临时表的查询中,此值表示临时表的数据量大小;

2. 通过查看PROFILE获取更多信息

Mysql 的profile保存了当前会话若干语句在执行时所使用资源的情况,通过会话级的参数profiling控制是否保存profile信息,可以通过以下语句打开(下述的方法将在将来的版本中不再支持,官方建议通过Performanc Schema进行替代):

set profiling=1;

打开会话profile后执行语句,mysql会保留该信息,可以通过show profiles查看目前记录了profile信息的查询,以query_id标识顺序。然后可以通过如下语句获取某条语句的profile信息:

show profile (cpu) for query query_id;

示例的结果如下,duration列出各阶段耗时,CPU_user及CPU_system分别列出用户态和系统态的CPU耗时。

Status

Duration

CPU_user

CPU_system

starting

0.000044

0

0

checking permissions

0.000005

0

0

Opening tables

0.000019

0

0

init

0.000009

0

0

System lock

0.000054

0

0

optimizing

0.000035

0

0

statistics

0.000012

0

0

preparing

0.000009

0

0

executing

0.000002

0

0

Sending data

0.014502

0.024

0

end

0.000012

0

0

query end

0.000005

0

0

closing tables

0.000009

0

0

freeing items

0.000155

0

0

cleaning up

0.000014

0

0

转载于:https://www.cnblogs.com/luojiahu/p/10889957.html

获取Mysql语句执行时的详细信息相关推荐

  1. MySQL 查看SQL语句执行阶段和进度信息

    MySQL 查看SQL语句执行阶段和进度信息 测试MySQL版本:5.7.31 根据<MySQL性能优化金字塔法则>做的实验,好书推荐! 我们在创建索引时,经常需要等待执行的SQL一段时间 ...

  2. 100% 展示 MySQL 语句执行的神器-Optimizer Trace

    在上一篇文章<用Explain 命令分析 MySQL 的 SQL 执行>中,我们讲解了 Explain 命令的详细使用.但是它只能展示 SQL 语句的执行计划,无法展示为什么一些其他的执行 ...

  3. mysql trace工具_100% 展示 MySQL 语句执行的神器-Optimizer Trace

    在上一篇文章<用Explain 命令分析 MySQL 的 SQL 执行>中,我们讲解了 Explain 命令的详细使用.但是它只能展示 SQL 语句的执行计划,无法展示为什么一些其他的执行 ...

  4. oracle的sql执行计划语句,最权威Oracle获取SQL语句执行计划大全

    该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅 ...

  5. MySQL语句执行过程

    目录 前言 MySQL语句执行过程 一.连接器 二.查询缓存 三.分析器 四.优化器 1.逻辑查询优化 1.1 逻辑查询优化思路. 2.2 查询重写规则 2.3 启发式规则再逻辑优化阶段的应用 2.3 ...

  6. sql语句分析是否走索引_mysql sql语句执行时是否使用索引检查方法

    在日常开发中,使用到的数据表经常都会有索引,这些索引可能是开发人员/DBA建表时创建的,也可能是在使用过程中新增的.合理的使用索引,可以加快数据库查询速度.然而,在实际开发工作中,会出现有些sql语句 ...

  7. EXPLAIN PLAN获取SQL语句执行计划

    一.获取SQL语句执行计划的方式 1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 2. 启用执行计划跟踪功能,即autotrace功能 3 ...

  8. hive 把mysql语句执行_Hive SQL 语句的执行顺序

    提示 Hive SQL 教程 编写中,使用过程中有任何建议,提供意见.建议.纠错.催更加微信 sinbam. 当我们写了一个 sql,但是执行起来很慢,这时如果我们知道这个sql的底层执行流程是怎样的 ...

  9. mysql一条语句是如何被执行的——带你了解mysql语句执行内部顺序

    文章目录 写在前面 MySQL基本架构 超详细架构图 连接器 查询缓存 解析器 MySQL 8.0对Parser所做的改进 优化器 执行器 存储引擎 SQL语句执行时间分析 参考资料 写在前面 sel ...

最新文章

  1. RandomAecessFile open failed: EISDIR (Is a directory)
  2. Ubuntu自带pdf查看器不能显示中文解决问题
  3. SPOJ3931(N个点形成三角形的最大面积)
  4. php引用下级目录文件夹,使用PHP遍历文件夹与子目录的函数代码
  5. 《软件项目管理(第二版)》第 6 章——项目质量管理 重点部分总结
  6. android动画能超过父容器吗,Android中你不得不知道的动画知识 (一)
  7. Spring bean注入方式
  8. 修改model,映射到表中
  9. apiDoc之api接口文档生成
  10. MAC安装maven步骤
  11. 多媒体计算机特性,多媒体计算机的基本特性
  12. 企业服务的定义、分类与特点
  13. 抖音api开放平台对接_抖音开放一键发布功能 第三方内容可分享至抖音
  14. Windows10息屏快的问题解决办法(在更改屏幕和睡眠时间无效的情况下)
  15. nRF52832 BLE UART
  16. Android studio实现番茄钟
  17. 给出一个正整数,求出它是几位数,逆序输出各位数字,顺序输出各位数字。
  18. 数字存储示波器基本工作原理与使用方法
  19. urlrewrite使用介绍
  20. 25款很好看的液晶数字字体下载

热门文章

  1. 中国广电设备行业十四五运营模式与投资机遇研究报告2022版
  2. 中国水果加工行业产销格局与开发价值分析报告2022版
  3. 全球及中国综艺节目产业营销策略分析及创新格局规划建议报告2021-2027年
  4. UpdateLayeredWindow 绘制异型窗口
  5. 数据结构-编程实现一个单链表的测长
  6. 阿里云服务器1M带宽是多少
  7. 你这种直来直去的英语,买家受不了
  8. 如何系统性的分析一个新idea的可行性?
  9. 做产品16年总结9条心得
  10. 如何鉴定相亲对象是否约过炮?PM们是这样干的...