博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL Explain命令详解--表的读取顺序,数据读取操作的类型等
阅读量:7190 次
发布时间:2019-06-29

本文共 826 字,大约阅读时间需要 2 分钟。

表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度(key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的)

不损失精确性的情况下,长度越短越好


ref

表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值


rows

表示MySQL根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数


Extra

该列包含MySQL解决查询的详细信息,有以下几种情况:

Using where:列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候,表示mysql服务器将在存储引擎检索行后再进行过滤

Using temporary:表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询

Using filesort:MySQL中无法利用索引完成的排序操作称为“文件排序”

Using join buffer:改值强调了在获取连接条件时没有使用索引,并且需要连接缓冲区来存储中间结果。如果出现了这个值,那应该注意,根据查询的具体情况可能需要添加索引来改进能。

Impossible where:这个值强调了where语句会导致没有符合条件的行。

Select tables optimized away:这个值意味着仅通过使用索引,优化器可能仅从聚合函数结果中返回一行


总结

• EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况

• EXPLAIN不考虑各种Cache

• EXPLAIN不能显示MySQL在执行查询时所作的优化工作

• 部分统计信息是估算的,并非精确值

• EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划

转载于:https://www.cnblogs.com/caicz/p/11009432.html

你可能感兴趣的文章
Cannot resolve class or package 'mysql’
查看>>
团队作业——系统设计和任务分配
查看>>
Mongodb启动命令mongod参数说明
查看>>
VS2008编译bat
查看>>
【1710】Binary Tree Traversals ( HDUOJ)
查看>>
Springboot 学习遇到的一些错和埋坑之旅
查看>>
Java探索之旅(9)——数据和方法的可见性
查看>>
冲刺第十天 1.11 FRI
查看>>
C语言-堆和栈
查看>>
[LeetCode] Zigzag Conversion
查看>>
快速提取某一文件夹下所有文件名称
查看>>
WPF之TabControl控件用法
查看>>
配置docker_jenkins
查看>>
Android数据存储——1.使用SharedPreferences存储数据
查看>>
二、Java面向对象(15)_模板方法设计模式
查看>>
《世界是数字的》读书笔记
查看>>
LeetCode开心刷题第七天——13RomanToInteger14 Longest Common Prefix
查看>>
php中直接执行mysqli_init()也是报Property access is not allowed yet的错误。
查看>>
领导讲话笔记 记录(游戏编辑器)
查看>>
"ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库。...
查看>>