• Mysql中EXPLAIN用法


    EXPLAIN SELECT * from testtable;

    写程序的时候,往往需要去查看sql语句的执行效率,以方便我们如何优化我们的程序,设计数据库。所以我们就不得不了解一些explain的用法。
    首先看看输出地参数:Mysql中EXPLAIN用法
    这些参数中,我们常常需要关心的是这几个参数
    1,select_type,就是select类型.
    主要有这几种,
    SIMPLE:这个是简单的sql查询,不使用UNION或者子查询
    PRIMARY:子查询中最外层的select
    UNION:UNION中的第二个或后面的SELECT语句
    DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询
    UNION RESULT:UNION的结果。
    SUBQUERY:子查询中的第一个SELECT.
    DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询
    DERIVED:派生表的SELECT(FROM子句的子查询)
    2,table 输出行所引用的表
    3,type 结类型。各种类型的信息在下面给出。
    system
    表仅有一行(=系统表)。这是const联结类型的一个特例。
    const
    表有最多一个匹配行,它将在查询开始时被读取。因为仅有一行,在这行的列值可被剩下的优化器认为是常数。 const表很快,因为它们只读取一次!
    eq_ref
    对于每个来自于先前的表的行组合,从该表中读取一行。这可能是最好的联结类型,除了const类型。它用在一个索引的所有部分被联结使用并且索引是UNIQUE或PRIMARY KEY。
    ref
    对于每个来自于先前的表的行组合,所有有匹配索引值的行将从这张表中读取。
    如果联结只使用键的最左面前缀,不或如果键不是UNIQUE或PRIMARY KEY(换句话说,如果联结能基于键值选择单个行的话),使用ref。如果被使用的键仅仅匹配一些行,该联结类型是不错的。
    range
    只有在一个给定范围的行将被检索,使用一个索引选择行。ref列显示哪个索引被使用。
    index
    这与ALL相同,除了只有索引树被扫描。这通常比ALL快,因为索引文件通常比数据文件小。
    ALL
    对于每个来自于先前的表的行组合,将要做一个完整的表扫描。
    如果表格是第一个没标记const的表,这通常不好,并且通常在所有的其他情况下很差。你通常可以通过增加更多的索引来避免ALL,使得行能从早先的表中基于常数值或列值被检索出。
    从上面可以发现,从上至下依次是越来越坏的结果,当然最好的还是Null,没有查询本表。
    4,possible_keys:possible_keys列指出MySQL能使用哪个索引在该表中找到行
    5,key:key列显示MySQL实际决定使用的键。如果没有索引被选择,键是NULL。
    6,key_len key_len列显示MySQL决定使用的键长度。如果键是NULL,长度是NULL。注意这告诉我们MySQL将实际使用一个多部键值的几个部分。
    7 ref:ref列显示哪个列或常数与key一起用于从表中选择行。
    8,rows rows列显示MySQL相信它必须检验以执行查询的行数。
    9,Extra
    如果是Only index,这意味着信息只用索引树中的信息检索出的。通常,这比扫描整个表要快。
    如果是where used,它意味着一个WHERE子句将被用来限制哪些行与下一个表匹配或发向客户。
    如果是impossible where 表示用不着where
    如果是Using filesort表示用到了文件排序,通常在数据量大的情况下,要减少这种查询

  • 相关阅读:
    Python之数据结构:元组
    Python之数据结构:列表
    python学习之路-第一天-接触python
    微信公众号的搭建-第五天-自定义菜单
    微信公众号的搭建-第四天(2)-获取并缓存access_token
    微信公众号的搭建-第四天-完成消息接受和返回响应的消息类型
    微信公众号的搭建-第三天-对请求、事件、响应类的封装
    鸟哥的Linux私房菜-第一部分-第3章主机规划与磁盘分区
    微信公众号的搭建-第二天-申请公众号并与本地测试服务器绑定
    微信公众号的搭建-第一天-搭建一个测试服务器
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/2819729.html
Copyright © 2020-2023  润新知