MySQL EXPLAN 字段结果解释

EXPLAN 显示的是 MySql 如何使用索引和对SQL进行分析的工具。用来查看索引是否生效,关联查询具体情况等信息。

调用 EXPLAN 只需要在查询语句 SELECT 前增加 EXPLAN 这个词即可

EXPLAN 返回信息字段说明:

id:

这一列是编号,标识select说属的行,语句中没有子查询或者联合查询时只会有一条结果,每次都显示为1,反之则以顺序编号,对应在原始语句中的位置。

select_type:

显示查询是简单合适复杂的,SIMPLE是简单的,如果存在复杂的查询则外层部分会标记为PRIMARY。

其他标记:

SUBQUERY 不在from子句中,包含在select列表中的子查询中的select语句。

DERIVED 表示包含在from子句的子查询中的select

UNION 在UNION中的第二个和随后的select被标记为UNION

UNION RESULT 用来从UNION的匿名临时表检索结果的SELECT被标记为UNION RESULT

tabale:

显示对应的行正在访问哪个表

partitions:

type:

访问类型,表述MySQL如何查找表中的行,有 ALL、index,range、ref、er_ref、const、system、NULL等值,ALL为全表扫描,NULL为无需访问表,性能上从最差到最好。

possible_keys:

显示查询可以使用哪些索引,这是基于查询访问的列和使用的比较操作符来判断的

key:

这一列显示MySQL决定采用哪个索引来优化对该表的访问,如果该索引没有出现在possible_keys列中,那么MySQL选用他就是出于其他原因。

key_len:

显示MySQL在索引里使用的字节数

ref:

这一列显示之前的表在key列记录的索引中查找值所用的列和常量

rows:

MySQL估计未来找到所需要的行而读取的行数,既检查行数

filtered:

显示针对表里某个符合条件的记录数百分比进行悲观估计

Extra:

额外信息

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!