MySQL 执行计划分析(EXPLAIN) 和 索引分析

本文详细介绍了MySQL的执行计划分析(EXPLAIN)及其各个字段的含义,包括id、select_type、table等,并强调了全表扫描、索引使用的重要性。接着讨论了创建索引的场景和建议,指出频繁查询、排序和分组字段应建立索引。此外,还分析了可能导致索引失效的情况,如避免使用like、计算和不规范的条件操作。
摘要由CSDN通过智能技术生成

一. 执行计划分析(EXPLAIN)

   

     1.id

 每个SELECT语句都会自动分配的一个唯一标识符

    2.select_type

  •  simple:简单select查询,不需要union操作或者不包含子查询。 

       

  •  primary:一个需要union操作或者含有子查询的select。

       

  •  union:union连接的两个select查询。

       

  •  dependent union: 与union一样,出现在union 或union all语句中,但是这个查询要受到外部查询的影响。

       

  •  union result:  union的结果集,在union语句中,因为它不需要参与查询,所以id字段为null。

       

  •  subquery:除了from字句中包含的子查询外,其他地方出现的子查询都可能是subquery。

     

  •  dependent subquery:和dependent union类似,表示这个subquery的查询要受到外部表查询的影响。

     

  •  derived:from字句中出现的子查询,也叫做派生表。

    3.table

 

  显示查询的表名,有如下几种情况:

  • 如果查询使用了别名,那么这里显示的是别名。
  • 如果不涉及对数据表的操作,那么显示为null。
  • <derivedN>:临时表, N就是执行计划中的id,表示结果来自于这个查询。
  • <unionM,N>:临时表,结果来自于执行计划id为M,N的结果集。

   4.partitions

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值