MySQL explain命令详解
使用explain + sql语句可以得到该条sql语句的执行计划,具体信息如下 下面将依次介绍每个字段的含义 id id表示在多表查询时,表的执行顺序,它是一组数字序列号,表示查询中执行select子句或操作表的顺序,其取值分为以下三种情况 1.id相同,表示表的执行顺序由上至下 上例中,表示该sql语句执行时对三张表的查询顺序是先查询t1,再查询t3,最后查询t3 2.id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 上例中,表示该sql语句执行时对三张表的查询顺序是先查询t3,再查询t2,最后查询t1 3.id有相同值也有不同值,id值越大越先被执行,id值相同自上而下顺序执行 上例中,t3表最先被查询,第二个被查询的并不是一张真实的表,而是一张衍生表derived2,它是表t3的查询结果,也就是将上一步中t3的查询结果作为一张表来进行查询,该衍生表的命名方式是derived+2(2 表示由 id =2 的查询衍生出来的表)。最后被查询的表是t2。 select_type select_type表示查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询,其值主要有以下几种情况 1.SIMPLE:简单的 select 查询,查询中不包含子查询或者UNION,实例如下 2.PRIMARY:查询中若包含任何复杂的子部分