mysql explain

借鉴网上的内容结合自己的实践与理解,整理如下:

  1. explain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。
  2. 例子: explain select * from student_course as sc left join student as stu on sc.student_id = stu.id where stu.id = ‘10001’
    在这里插入图片描述
  3. id:选择标识符:
    3.1 id如果相同,可认为是同一组,执行顺序从上到下
    3,2 id值不同,如果是子查询,id的序号会递增,id的值越大优先级越高,越先被执行
  4. select_type:表示查询的类型
    4.1 SIMPLE 简单的select查询,查询中不包含子查询或union查询。
    4.2 PRIMARY 查询中若包含任何复杂的子部分,最外层查询为PRIMARY,也就是最后加载的就是PRIMARY。
    4.3 SUBQUERY 在select或where列表中包含了子查询,就为被标记为SUBQUERY。
    4.4 DERIVED 在from列表中包含的子查询会被标记为DERIVED(衍生),MySQL会递归执行这些子查询,将结果放在临时表中。
    4.5 UNION 若第二个select出现在union后,则被标记为UNION,若union包含在from子句的子查询中,外层select将被标记为DERIVED。
    4.6 UNION RESULT 从union表获取结果的select
  5. table:输出结果集的表(如果有别名则显示别名)
  6. partitions:匹配的分区
  7. type:表示表的连接类型(查询所使用的访问类型),从最好到最差依次为:system>const>eq_ref>ref>range>index>ALL
  8. possible_keys:表示查询时,可能使用的索引,显示可能应用在表中的索引,可能一个或多个。查询涉及到的字段若存在索引,则该索引将被列出,但不一定被查询实际使用。
  9. key:表示实际使用的索引
  10. key_len:索引字段的长度 key_len显示的值为索引字段的最大可能长度,并非实际使用长度
  11. ref:列与索引的比较: 显示关联的字段,如果使用常数等值查询,则显示const,如果是连接查询,则会显示关联的字段。
  12. rows:扫描出的行数(估算的行数)
  13. filtered:按表条件过滤的行百分比
  14. Extra:执行情况的描述和说明
    14.1 Using where:使用了where条件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值