id 显示select语句的执行顺序 (1) id相同时,执行顺序由上至下 (2) 如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 (3) id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行 select_type 显示select语句的查询类型 simple:select语句中不包含union与子查询 primary:select语句中若包含子查询,最外层的select语句 subquery:select语句中包含的子查询 derived:select语句的from子句中包含的子查询 union:通过union来连接多个select语句时,在union后面的select语句 table 显示select语句查询的表或衍生表 type 显示mysql决定如何访问表(访问类型) ALL:全表扫描 index:全索引扫描 range:索引范围扫描 ref:非唯一索引扫描,对于每个索引键,表中可能有多条记录与之匹配 eq_ref:主键或唯一索引扫描,对于每个索引键,表中只有一条记录与之匹配 possible_keys列 显示mysql可能使用哪些索引来访问表 key列 显示mysql实际使用哪个索引来访问表 key_len列 显示索引中使用的字节数,通过这个值可以判断使用了索引中的哪些列 ref 显示表的连接匹配条件 rows 显示mysql估算的在查询过程中表需要被扫描多少行 Extra Using index:仅访问索引就可以获得结果集,无需访问表 Using where:存储引擎返回的数据需要进行过滤 Using temporary:在查询过程中需要创建临时表 Using filesort:在查询过程中使用了文件排序,因为排序列未创建索引 Using join buffer:在多表join查询时,内表的连接列未创建索引,需要在join buffer中缓存查询中外表相关的所有列(block nest loop join)
Mysql Database 执行计划: explain
猜你喜欢
转载自blog.51cto.com/13598811/2304935
今日推荐
周排行