NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查找完成。 五、possible_keys 指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用(该查询可以利用的索引,如果没有任何索引显示 null) 该列完全独...
如果是使用的常数等值查询,这里会显示 const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为 func。 【rows 列】 MySQL 认为必须检查的用来返回请求数据的行数。这里是执行计划中估算的扫描行数,不是精确值。 【Extra 列...
该key列表示 MySQL 实际决定使用的键(索引)。如果 MySQL 决定使用其中一个possible_keys 索引来查找行,则该索引将被列为键值。 可能key会指定值中不存在的索引 possible_keys。如果没有possible_keys索引适合查找行,但查询选择的所有列都是其他索引的列,则可能会发生这种情况。也就是说,命名索引覆盖了选定的列,因...
FORMAT:执行计划输出格式,默认为TRADITIONAL,以表格的形式输出。MySQL 8.0之前有JSON和TRADITIONAL两个选择,MySQL 8.0开始增加了TREE输出格式。如果是使用JSON格式输出的话,执行计划中的NULL值将不会展示。
执行计划语法 执行计划可以通过EXPLAIN、DESCRIBE、DESC关键字来查询的,但是一般会使用EXPLAIN进行查询,DESCRIBE主要用于查询表结构。EXPLAIN为SELECT语句中使用的每个表返回一行信息,它按照MySQL在处理语句时读取表的顺序列出输出中的表。 EXPLAIN语法如下: {EXPLAIN | DESCRIBE | DESC} ...
Explain被称为执行计划,在语句之前增加 explain 关键字,MySQL会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。(注意,如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。 Explain可以用来分析SQL语句和表结构的性能瓶颈。通过explain的结果,可以...
possible_keys:表示查询时,可能使用的索引 key:表示实际使用的索引 key_len:索引字段的长度 ref:列与索引的比较 rows:扫描出的行数(估算的行数) filtered:按表条件过滤的行百分比,explain extended sql语句,5.7版本默认就有 Extra:执行情况的描述和说明
和分区表有关,一般情况下查询语句的执行计划的 partitions 列的值都是 NULL。 type 执行计划的一条记录就代表着 MySQL 对某个表的执行查询时的访问方法或访问类型,其中的 type 列就表明了这个访问方法或访问类型是较为重要的一个指标,结果值从最好到最坏依次是:system > const > eq_ref > ref > range > ...
6、possible_keys:预计可能使用的索引 在不和其他表进行关联的时候,查询表的是可能使用的索引 7、key:实际查询的过程中使用的索引 显示MySQL在查询中实际使用的索引,若没有使用索引,显示为NULL 8、key_len 表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度 ...