zoukankan      html  css  js  c++  java
  • MySQL查看SQL语句执行效率

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。
    
     
    
    Explain语法:explain select … from … [where ...]
    
     
    
    例如:explain select * from news;
    
     
    
    输出:
    
     
    
    +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
    
    | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
    
    +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
    
     
    
    下面对各个属性进行了解:
    
     
    
    1、id:这是SELECT的查询序列号
    
     
    
    2、select_type:select_type就是select的类型,可以有以下几种:
    
     
    
     
    
    SIMPLE:简单SELECT(不使用UNION或子查询等)
    
     
    
    PRIMARY:最外面的SELECT
    
     
    
    UNION:UNION中的第二个或后面的SELECT语句
    
     
    
    DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询
    
     
    
    UNION RESULT:UNION的结果。
    
     
    
    SUBQUERY:子查询中的第一个SELECT
    
     
    
    DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询
    
     
    
    DERIVED:导出表的SELECT(FROM子句的子查询)
    
     
    
     
    
    3、table:显示这一行的数据是关于哪张表的
    
     
    
    4、type:这列最重要,显示了连接使用了哪种类别,有无使用索引,是使用Explain命令分析性能瓶颈的关键项之一。
    
     
    
    结果值从好到坏依次是:
    
     
    
    system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
    
     
    
    一般来说,得保证查询至少达到range级别,最好能达到ref,否则就可能会出现性能问题。
    
     
    
    5、possible_keys:列指出MySQL能使用哪个索引在该表中找到行
    
     
    
    6、key:显示mysql实际决定使用的键(索引)。如果没有选择索引,键是NULL
    
     
    
    7、key_len:显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。使用的索引的长度。在不损失精确性的情况下,长度越短越好
    
     
    
    8、ref:显示使用哪个列或常数与key一起从表中选择行。
    
     
    
    9、rows:显示MySQL认为它执行查询时必须检查的行数。
    
     
    
    10、Extra:包含MySQL解决查询的详细信息,也是关键参考项之一。
    

      

  • 相关阅读:
    使用 ASP.NET Core MVC 创建 Web API(五)
    使用 ASP.NET Core MVC 创建 Web API(四)
    使用 ASP.NET Core MVC 创建 Web API(三)
    使用 ASP.NET Core MVC 创建 Web API(二)
    使用 ASP.NET Core MVC 创建 Web API(一)
    学习ASP.NET Core Razor 编程系列十九——分页
    学习ASP.NET Core Razor 编程系列十八——并发解决方案
    一个屌丝程序猿的人生(九十八)
    一个屌丝程序猿的人生(九十七)
    一个屌丝程序猿的人生(九十五)
  • 原文地址:https://www.cnblogs.com/ssjifm/p/7496330.html
Copyright © 2011-2022 走看看