zoukankan      html  css  js  c++  java
  • MYSQL EXPLAIN字段含义

    explain包含id、select_type、table、type、possible_keys、key、key_len、ref、rows、extra字段

    id
    id列的编号是select的序列号,有几个select就有几个id,并且id的顺序是按select出现的顺序增长的。
    select_type
    
    
    select_type表示对应行是简单还是复杂的查询。
    
    1. simple:简单查询
    2. primary:复杂查询中最外层的select
    3. subquery:包含在select中的子查询(不在from子句中)
    4. derived:包含在from子句中的子查询
    5. union:在union中的第二个和随后的select
    6. union result:从union临时表检索结果的select
    
    
    table
    
    
    这一列表示explain的一行正在访问哪张表。

    type
    这一列表示关联类型或访问类型,即mysql决定如何查找表中的行
    性能优先级依次从最优到最差分别为:system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all
    1.null:mysql能够在优化阶段分解查询语句,在执行阶段用不着再访问表或索引。
    2.const、system:mysql能对查询的某部分进行优化并将其转化成一个常量(可以看show warnings的结果)。 
    3.eq_ref:primary key 或unique key索引的所有部分被连接使用,最多只会返回一条符合条件的记录。 
    4.ref:相比eq_ref,不实用唯一索引,而是使用普通索引或者唯一性索引的部分前缀,索引要喝某个值相比较,可能会找到符合条件的行。
    5.ref_or_null:类似ref,但是可以搜索值为null的行。
    6.index_merge:表示使用了索引合并的优化方法。
    7.range:范围扫描通常出现在in(),between,>,<,>=等操作中。
    8.index:和all一样,不同就是mysql只需扫描索引树,这通常比all快一些。
    9.all:全表扫描,意味着mysql需要从头到尾去查找所需要的行,通常情况下这需要增加索引来进行优化了。

        possible_keys

    这一列显示查询可能使用哪些索引来查找

       key

    这一列显示mysql实际采用哪个索引来优化对该表的访问
       key_len
    这一列显示了mysql在索引里使用的字节数,通过这个值可以算出具体使用了索引中的那些列
    
    
    
       ref
    在key列记录的索引中,表查找值所用到的列或常量,常见的有:const,func,null,字段名

      rows

    mysql估计要读取并检测的行数,注意这个不是结果集里的行数。

      extra

    展示的是额外信息
    1.distinct:一但mysql找到了与行相联合和匹配的行,就不再搜索了。
    2.using index:这发生在对表的请求列都是同一索引的部分的时候,返回的列数据只使用了索引中的信息,而没有再去访问表中的行记录。(是性能高的表现)
    3.using where:mysql服务器将在存储引擎检索行后再进行过滤。就是先读取整行数据,再按where条件进行检查,符合就留下,不符合就丢弃。
    4.using temporary:mysql需要创建一张临时表来处理查询。出现这种情况一般是要进行优化的,首先是想到用索引来优化。
    5.using filesort:mysql会对结果使用一个外部索引排序,而不是按索引次序从表里读取行。此时mysql会根据联接类型浏览所有符合条件的记录,并保存排序关键字和行指针,然后排序关键字并按顺序检索行信息。这种情况下一般也是要考虑使用索引来优化的。
    https://www.cnblogs.com/teach/p/14651041.html 
    如果这篇文章对你有帮助的话,评论或推荐下吧!(转载请注明原作者!)
  • 相关阅读:
    Ubuntu Windows双系统时差8小时问题解决
    linux无线网络配置
    Ubuntu 10.04上腾达W541U V2.0 无线网卡驱动的使用
    有些歌,放在这慢慢听
    [推荐]什么是程序员的优秀品质?
    如何阅读源代码
    Ubuntu中的有线、无线网络连接管理器──Wicd[译]
    linux下无线网卡解决方案之Ndiswrapper终极使用指南
    将jar文件做成exe可运行文件
    WOW裁缝1375详细攻略
  • 原文地址:https://www.cnblogs.com/Liyuting/p/14550386.html
Copyright © 2011-2022 走看看