explain的使用介绍
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MYSQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。
执行计划包含的信息:
1. id字段:(表的读取顺序)
含义:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。
三种情况:
(1) id相同,执行顺序由上至下。(mysql内部优化器进行排序)
(2)id不同。如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行。
(3)id相同不同,同时存在。
第一table< derived2 >是根据表t3衍生出来的虚表。(衍生=DERIVED)
id如果相同,可以认为是一组,从上往下顺序执行;
在所有组中,id值越大,优先级越高,越先被执行。
2. select_type字段:(数据读取操作的操作类型)
主要的作用:
主要是用于区别查询的类型,如普通查询、联合查询、子查询等的复杂查询。
常见的值有六个: