mysql 中的explain 结果分析

一个简单的explain结果

explain select * from xx\G;

explain 中的列

1.id:是一个编号 标示select所属的行

2.select_type列

    1) SUBQUERY

    2)DERIVED

    3)  UNION

    4)  UNION RESULT

3table列 显示对应行正在访问那个表

4.type列 从差到优依次为

   1)ALL(全表扫描)

   2)index(按索引全表扫描)

   3)range(索引有范围扫描)

    4)ref(索引访问,返回匹配某个单个值的行)

    5)eq_ref(返回最多一条记录的索引查找)

    6)const, system(将一部分查找条件转化为常量)

    7)NULL(不用访问表或者索引)

5.possible_keys列

      显示查询可以使用哪些索引,没什么用

6.key列

     该列显示mysql决定采用那个索引来优化对该表的访问,注意区别possible_keys,前者是采用,后者是建议

7.key_len列

    mysql在索引里使用的字节数,非实际字节数,而是表定义的字节数

8.ref

    显示了之前表在key列记录的索引中查找值所用的列或者常量

9.rows列

    mysql估计为了找到所需大行所需要扫描的行数,不精确

10.filterd列

    使用explain extend出现,作用是针对表里符合某个条件的记录数的百分比所做的一个悲观估算

11.extra列,常见的最重要的值如下:

    1)"using index"(使用了覆盖索引,避免访问表)

    2) "using where"(msyql存储引擎检索后再进行过滤)

    3)"using temporary" (对查询结果排序时会使用临时表)

    4)"using filesort" (对结果使用外部索引排序,而不是按索引次序在表里读取行)

    5) "range checked for each record" (意味着没有好的索引)

注:个人读书笔记,出自《高性能mysql第三版》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值