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

Explain执行计划

Explain执行计划

explain可以帮助开发人员分析SQL问题,explain用于显示MySQL如何使用SQL执行计划,可以帮助开发人员写出更优化的查询语句。使用方法就是在查询语句前加上explain关键字。
执行添加上explain关键字的语句可以看到一个列表:

其主要结果列说明如下;

  • id: id列是select的序列号,有几个select就有几个id,并且是按select出现的顺序增长的,id列越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行。
  • select_type: select_type列表示对应行查询的类型,其类型分别是:SIMPLE、SUBQUERY、DERIVED、PRIMARY、UNION、UNION RESULT。
    SIMPLE:简单查询,不包含子查询和union
    SUBQUERY:包含在select中的子查询
    DERIVED:包含在from子句中的子查询
    PRIMARY:复杂查询中最外层的select
    UNION:在union中的第二个和随后的select
    UNION RESULT:从union临时表检索结果的select
  • table: table列表是explain的一行正在访问哪个表。
  • type: type列表示关键类型或访问类型,system>const>eq_ref>ref>range>index>ALL,一般达到range级别,最好达到ref级别。
  • possible_keys: possible_keys列表示查询可能使用哪些索引来查找,但是最终查询可能不使用索引。
  • key: key列表示MySQL实际使用哪个索引来对该表进行查询。
  • key_len: key_len列表MySQL在索引里使用的字节数,通过这个值可以算出具体使用了索引中的哪些列
  • ref: ref列表示在key列记录的索引中,表查找值所用到的列或常量。
  • rows: rows列表示MySQL估计要读取并检测的行数,需要注意的是,是估计值,并非最后结果集里的行数。
  • Extra:Extra列表示的是一些额外信息
    Using Index:使用覆盖索引
    Using where:使用where语句来处理结果,查询的列未被索引覆盖
    Using Index condition:查询的列不完全被索引覆盖,需要回表查询
    Using temporary:需要创建临时表来处理查询
    Using filesort:将用外部排序而不是索引排序
    Select tables optimized away:使用某些聚合函数(max)来访问存在索引的某个字段时出现
http://www.lryc.cn/news/441799.html

相关文章:

  • ARM/Linux嵌入式面经(三六):中科曙光
  • Python和C++气候模型算法模型气候学模拟和统计学数据可视化及指标评估
  • 鸿蒙开发城市联动选择弹框
  • css 控制虚线刻度尺寸
  • NLP三天入门大模型,我领先你好几个版本了
  • 专题六_模拟_算法详细总结
  • ArrayList的扩容机制
  • 一、编译原理(引论)
  • 【Javascript修炼篇】JS中的函数式编程
  • spring cxf 常用注解
  • python | x-y 网格切片
  • 【C#】vs2022 .net8
  • 【华为杯】第二十一届中国研究生数学建模竞赛
  • 首次开机android.intent.action.BOOT_COMPLETED开机广播发送慢的问题
  • 通信工程学习:什么是OLT光线路终端
  • Unity的Button组件进行扩展
  • 前端vue-插值表达式和v-html的区别
  • 【开发心得】筑梦上海:项目风云录(4)
  • el-table使用el-switch选择器没效果
  • libserailport交叉编译适配说明
  • C语言中的一些小知识(二)
  • 使用 Go 语言实现简单聊天系统
  • 用友U8二次开发工具KK-FULL-*****-EFWeb使用方法
  • 【经验帖】脏读和不可重复读的概念及影响
  • MTK zephyr平台:USB升级、枚举流程
  • golang操作mysql利器-gorm
  • 09 Shell Scriptfor循环结构语句
  • 【Java】并发集合
  • 活动邀请|景联文科技与您相约华为全联接大会2024
  • 周边游|基于springBoot的周边游平台设计与实现(附项目源码+论文+数据库)