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

mysql explain使用

文章目录

  • type 访问类型
    • 性能高到低
    • 多注意
    • type: index 出现的场景
  • key 实际使用的索引
  • Extra 额外信息
  • 其他字段

通过 EXPLAIN 你可以知道:如是否使用索引、扫描多少行、是否需要排序或临时表

EXPLAIN 三板斧(type、key、Extra)

例子:

explain select * from user where 'name' = '小明'

type 访问类型

性能高到低

表示 MySQL 是如何查找表中的数据,怎么做数据检索的,是查询性能的关键指标

性能从高到低排序:

system > const > eq_ref > ref > range > index > ALL
  • system:表仅有一行数据(系统表或单行表),这是 const 的特例
  • const:通过主键或唯一索引查找,且查询条件是常量,性能极高,因为直接定位到单行数据
  • eq_ref:在多表连接(JOIN)中,通过主键或唯一索引进行等值匹配,每行只匹配一行数据,性能非常高,逐行精确匹配
  • ref:表示使用了非唯一的索引(普通索引),或者唯一索引的前缀进行等值匹配
  • range:通过索引进行范围扫描,返回符合条件的行(如 BETWEEN、>、< 等),性能中等,优于全表扫描但不如等值匹配
  • index:进行了全索引扫描,扫描整个索引树而不是表数据。只遍历索引树,不访问数据文件。
  • all:表示全表扫描,未使用索引

多注意

type 如果是从 range 以及一下就需要多留意关注了

type: index 出现的场景

  • 查询字段完全被索引覆盖
  • 复合索引覆盖查询字段和条件

key 实际使用的索引

key 会显示你使用的索引名

如果没用索引,那么这里会显示 NULL

Extra 额外信息

Using index: 表示使用了 覆盖索引(Covering Index),即查询的所有字段都在索引中,无需回表(性能最佳)

Using where: 表示存储引擎返回数据后,MySQL 服务器层需要再次过滤数据(可能需优化)

Using filesort: 表示需要文件排序(性能较差,需避免)

Using temporary: 表示需要创建临时表(性能差,需优化)

其他字段

select_type:查询的类型或复杂性,描述查询的结构(如简单查询、子查询、联合查询等)
possible_keys:查询可能使用的索引列表(可能,但不一定实际使用)
ref:显示索引的哪一列被使用,以及与之比较的值(如常量、列名),const,表示使用了等值匹配
rows:MySQL 估计需要扫描的数据行数(估算值),注意不是扫描是索引树中的数据条数
filtered:剩余满足查询条件的记录百分比


文章转载自:

http://BlkpwbSi.bfggg.cn
http://efWZanUC.bfggg.cn
http://H1xbKpcp.bfggg.cn
http://QUtR3YgY.bfggg.cn
http://qARSTLNz.bfggg.cn
http://8mtoHpct.bfggg.cn
http://noJjcPmE.bfggg.cn
http://GmPPk40B.bfggg.cn
http://2IkWT2rt.bfggg.cn
http://BXgR7i3t.bfggg.cn
http://9ZUmsBdN.bfggg.cn
http://j43nEn1T.bfggg.cn
http://lBNB4UU9.bfggg.cn
http://iuVXyZbV.bfggg.cn
http://G6UUaiXO.bfggg.cn
http://dXmGbDeM.bfggg.cn
http://5PUWnCt9.bfggg.cn
http://AFXFpQqC.bfggg.cn
http://YI0AFnob.bfggg.cn
http://vX22Fa6o.bfggg.cn
http://zqggyFAX.bfggg.cn
http://k0xqkYB7.bfggg.cn
http://szfjEAGp.bfggg.cn
http://eB5bXOSa.bfggg.cn
http://w8TszNyk.bfggg.cn
http://FNSrNsFe.bfggg.cn
http://1JWAkYYR.bfggg.cn
http://jCga36FE.bfggg.cn
http://GJOyf8rq.bfggg.cn
http://mG6m7kQ5.bfggg.cn
http://www.dtcms.com/a/217391.html

相关文章:

  • 基于springboot的校园商铺管理系统的设计与实现
  • HikariCP连接池使用和源码分析
  • NB-IoT NPUSCH(三)-资源映射
  • 一种C# 的SM4 的 加解密的实现,一般用于医疗或者支付
  • 多线程(1)
  • ODSA架构与操作-1
  • 2025最新Gemini 2.5 Pro API限制全面解析:最完整的使用指南与优化方案
  • 做好测试用例设计工作的关键是什么?
  • 仓颉入门:特性
  • 嵌入式自学第二十九天(5.27)
  • DFS入门刷题c++
  • AI 智能体的那些事—架构设计关键点
  • 数据库管理与高可用-MySQL数据库初体验
  • Java 内存模型与 volatile 关键字深度解析:从可见性到指令重排
  • 【键盘说明书备份】ENERGYFORT
  • 什么是舵机,如何控制舵机
  • LVGL(Grid)
  • 用Qt/C++玩转观察者模式:一个会聊天的设计模式
  • Baklib企业CMS实现内容智能归档与精准检索
  • 红黑树,B树,二叉树之间的不同
  • C++类继承详解:权限控制与继承方式解析
  • Gemini Pro 2.5 输出
  • AI 编程如何让你轻松采集网站数据?
  • 第二十一章:数据治理之数据安全:数据安全的驱动因素以及常见的数据安全举措
  • 阿姆斯特朗数
  • 五大要素协同效益的量化模型与实战策略
  • 【Qt开发】容器类控件
  • 真话与假话
  • Java集合框架详解:List、Set、Map及其实现类
  • C-内存函数,动态内存