zoukankan      html  css  js  c++  java
  • explain分析sql

    mysql中可以使用explain命令来解析查询语句的性能,只需要在查询语句之前加上 explain 关键字即可。

    接下来分别对结果中的每一个字段进行解析。

    1)select_type  select查询的类型

    SIMPLE  表示此查询是一个不包含union和子查询的简单查询。

    PRIMARY  表示此查询是最外层的查询

    UNION  表示此查询是union的第二或随后的查询

    SUBQUERY  子查询的第一个select

    2)table  查询的是哪个表

    3)type 

    该字段是判断查询是否高效的重要依据。通过type的类型,可以得知该查询是全表扫描还是索引扫描。

    type的常用类型

    system  表中只有一条数据,这个类型是特殊的const类型。

    const  针对主键或唯一索引的等值查询扫描,最多只返回一行数据。const查询速度非常快,因为它仅仅读取一次即可。

    eq_ref  此类型通常出现在多表的join查询,表示对于前表的每一个结果,都只能匹配到后表的一行结果,并且查询的比较操作通常是=,查询效率较高。

    ref  此类型通常出现在join查询,针对非唯一或非主键索引,或者是使用了最左前缀规则索引的查询。

    range  表示使用索引范围查询,通过索引字段范围获取表中部分数据记录。这个类型通常出现在=,>=,<=,between,in等操作中。

    index  表示全索引扫描,仅仅扫描所有的索引就可以获取结果,而不用扫描数据。当这种情况时,extra字段会显示 using index。

    ALL  表示全表扫描,这个类型的查询是性能最差的查询之一。通常来说,我们的查询不应该出现ALL类型的,因为这样在大数据量的情况下,对数据库的性能是巨大的灾难。

    4)possible_keys  此次查询中可能选用的索引

    5)key  此次查询中确切使用到的索引

    6)ref  哪个字段或常数与key一起被使用

    7)rows  显示此查询一共扫描了多少行,这是一个估计值

    8)filtered  表示此查询条件所过滤的数据的百分比

    9)extra  额外的信息

  • 相关阅读:
    VS2010工具箱中的控件突然全部都不见了的问题解决
    wpf用户控件 弹出窗口因主窗体最小化而消失的问题
    未解析成员Csla.Security.UnauthenticatedPrincipal,Csla,异常
    服务器被入侵,管理员账号密码被改,策略以及维护
    telerik for asp 的引用问题
    decimal简单问题
    vs2008的网站升级为vs2010遇到的问题
    VS2010设置默认以管理员权限打开
    lhgdialog基础
    SQL Server 2005镜像删除备忘录
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/11493801.html
Copyright © 2011-2022 走看看