当MySQL要执行一个SQL查询时,首先会对该语句进行语法检查,然后构造一个QEP,QEP决定了MySQL从底层存储引擎中获取信息的方式。
如果想要查看QEP,只需要在SELECT语句前加上EXPLAIN关键字:
各列详解:
id:id列是在QEP中展示的表的连续引用。我的理解id也即等于执行顺序。
select_type: select_type提供了各种表示table列引用的使用方式的类型。最常见的值包括SIMPLE,PRIMARY、DERIVED和UNION。其他可能的值还有UNION RESULT、DEPENDENT SUBQUERY、 DEPENDENT UNION、UNCACHEABLE UNION 以及UNCACHEABLE QUERY
1. SIMPLE
不包含子查询和其他复杂语法的简单查询。
2.PRIMARY
这是为更复杂的查询而创建的首要表(也就是最外层的表)。
3. DERIVED
当一个表不是物理表时,被称作DERIVED。
PRIMARY 和 DERIVED 如下示例: