004 执行计划的id
一 .关键点id
id表示select查询的执行顺序,其中包含一组数字.可能出现的情况为如下的几种:
[1]id相同,从上向下进行执行.(常见于多表联查的情况下)
[2]id不同,id大的先执行.(常见于子查询的情况下)
通过执行计划的执行顺序,我们可以获取到sql真正的执行顺序.
二 . select type 查询的类型
[1] simple : 简单查询,表示最为简单的查询.
[2]primary : 主查询,常见在用于子查询的时候,表示一个主查询.
[3] subquery : 表示子查询.
[4]derived : 表示衍生表,一般通过临时表出现.
[5] union 和 union result : 一般出现在union的结果集合并的情况下.
三 . table
该列表示查询到底查询的是哪一张表
四 . partition(分区,这个一般情况下,我们不太会去使用)
五 . type
表示查询的访问类型,这个是我们优化时最为常见的依据.
我们一般情况下,根据这个信息进行优化.
[1] system : 最好的情况,一般情况下不会出现,只有表中含有一航记录的情况下回出现.
[2]constant : 常量,一般情况情况下表示直接能查询到的情况,一般情况下也不会出现.
[3]eq_ref : 当连表查询的时候,我们常见于一对一的索引查询的时候.
[4]ref : 当出现连表的情况下,我们的连接条件为索引的情况下,一般出现在一对多的情况下.
[5] range : 在使用索引的情况下,如出现如id > 2 这样的情况,性能还不错.
[6]index : 表示查询的时候,使用到了索引.
[1] all : 全表扫描,一般性能是最差的.
六. possible_keys 和keys
表示是否使用到了索引内容,这个是我们分析sql的一个核心点.
七: