MySQL执行计划

2020-08-21  本文已影响0人  森林中大鸟

id 表的读取顺序

执行优先级,id相同从上到下依次执行,id不同,id从大到小依次执行

select_type 查询类型

simple 简单查询,不包含子查询,union

primary 最外层的查询 ,鸡蛋壳,查询中包含任何复杂的子查询时,最外层的查询。

subquery 在select 或 where中包含的子查询

derived 在from中包含的子查询被标记为derived(衍生)MySQL会递归的执行这些子查询,把结果放在临时表。derived后的数字即为id

union 若第二个select 出现在union之后则被标记位union;若union包含在from子句的查询中,外层select 被标记未derived;

union result 两个union合并的结果集

type

从最好到最差
system 》 const 》 eq_ref》 ref 》 range 》 index 》all

possible keys

可能用到的索引。

key

实际用到的索引,为null 表示没有用到索引。或者没建立索引
拆卸像那种若使用到了覆盖索引,则该索引只出现在key这一列中;

key_len

表示索引中使用到的字节数,可通过该列计算查询寻中使用到额索引的长度,再不损失精度的情况下,用的越少越好。
显示的值为索引字段的最大长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的。
比如:col1 列 索引长度13,col2 列 索引长度13 where col1 = ‘ss’ key_len = 13 where col1 = 'a' and col2 ='s' key_len = 26

ref

type 为 ref/eq_ref 时
显示哪一列被使用了,如果可能的话,最好是一个常数。
库.表.字段 const

rows

根据表统计信息和索引使用情况,大致估算出找到所需记录所需要读取的行数

filterd

过滤掉了多少行

extra

上一篇下一篇

猜你喜欢

热点阅读