查询计划使用以及使用说明

  1. table:显示这一行数据是关于哪张表的。
  2. type:显示使用了何种类型,从最好到最差的连接类型为system、const、eq_ref、ref、fulltext、ref_or_null、index_merge、unique_subquery、index_subquery、range、index、all
    • const、system、null:当mysql能对查询的部分就行优化,并且转换成一个常量的时候,它就会使用这种访问类型了。比如你把一行的主键当做where条件放进去,那mysql就可以把它转换成一个常量,然后查询.
    • eq_ref:通过索引列,直接引用某1行数据(精确到一行数据中)常见于连接查询中
    • ref:一种索引访问,返回所有匹配某个单独值的行,可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体(也是范围区间,不过比range更加精确)
    • fulltext:全文索引
    • ref_or_null:类似ref,只是搜索条件包括连接字段的值可以为NULL的情况,比如 where col = 2 or col is null
    • index_merge:多重范围扫描。两表连接的每个表的连接字段上均有索引存在且索引有序,结果合并在一起。适用于作集合的并、交操作
    • unique_subquery:在子查询中,基于唯一索引进行扫描,类似于eq_ref
    • index_subquery:在子查询中,基于除唯一索引之外的索引进行扫描
    • range:查询时,能根据索引做范围的扫描
    • index:比all性能稍好一点。all扫描所有的数据行,相当于data_all, index扫描所有的索引节点,相当于index_all
    • all:意味着从表的第1行,往后,逐行做全表扫描,运气不好扫描到最后一行
  3. possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。
  4. key:实际使用的索引,如果为null,则没有使用索引。
  5. key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好
  6. ref:显示索引的哪一列被使用了,如果可能的话,是一个常数。
  7. rows:mysql认为必须检查的用来返回请求数据的行数,越小越好
  8. extra:利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort,它是Mysql里一种速度比较慢的外部排序,能避免是最好的。using temporyary表示适用临时表排序,同样很耗时。
    • using index:出现这个说明Mysql使用了覆盖索引,避免了范围表的数据行,效率高。
    • using where:服务器在存储引擎收到返回的行之后进行过滤。但是有些where中的条件会有属于索引的列,当它执行时就会执行过滤,所以有些where语句并没有在extra列中出现using where。
    • using temporary:Mysql对查询结果进行排序的时候使用了一张临时表。
    • using filesort:Mysql会对数据使用一个外部索引进行排序,而不是按照表内的索引顺序进行读取

注意:MySQL在查询时最多只能使用一个索引。因此,如果WHERE条件已经占用了索引,那么在排序中就不使用索引了。

本文参考:http://www.cnblogs.com/xujishou/p/6389370.html

Mysql Explain 参数解释的更多相关文章

  1. mysql explain参数解析

    建表语句 -- ---------------------------- -- Records of departments -- ---------------------------- INSER ...

  2. mysql explain参数详解

    主要对几个参数做一些记录 type:显示的是访问类型 从最好到最差的连接类型为:const.eq_reg.ref.range.index和ALL 至少要达到range,基本是ref  最好是const ...

  3. mysql explain的解释

    详解MySQL中EXPLAIN解释命令 explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上e ...

  4. mysql explain 命令解释

    转载http://bzyyc.happy.blog.163.com/blog/static/6143064720115102551554/ key实 际使用的索引.如果为NULL,则没有使用索引.很少 ...

  5. mysql命令行各个参数解释

    mysql命令行各个参数解释 http://blog.51yip.com/mysql/1056.html Usage: mysql [OPTIONS] [database]   //命令方式 -?, ...

  6. mysql 运行计划explain具体解释

    explain主要是用来获取一个query的运行计划,描写叙述mysql怎样运行查询操作.运行顺序,使用到的索引,以及mysql成功返回结果集须要运行的行数.能够帮助我们分析 select 语句,让我 ...

  7. Mysql EXPLAIN列的解释

    转自:http://blog.chinaunix.net/uid-540802-id-3419311.html explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择 ...

  8. mysql explain字段意思解释

    mysql explain字段意思解释 explain包含id.select_type.table.type.possible_keys.key.key_len.ref.rows.extra字段 id ...

  9. 【转载】 mysql explain用法

    转载链接:  mysql explain用法 官网说明:     http://dev.mysql.com/doc/refman/5.7/en/explain-output.html 参数:  htt ...

随机推荐

  1. 201521123056 《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  2. 201521123027 <java程序设计>第十周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  3. 201521123008《Java程序设计》第十二周学习总结

    1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1 ...

  4. 201521123032 《Java程序设计》第3周学习总结(编辑器修改后)

    本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 书面作业 代码阅读 ...

  5. SSM整合开发

    导入开发包 asm-3.2.0.RELEASE.jar asm-3.3.1.jar c3p0-0.9.jar cglib-2.2.2.jar com.springsource.net.sf.cglib ...

  6. struts2前后台交互

    1.前台到后台A.form提交,后台用getParameter()方法拿到数据:B.url用?+&C.Ajax使用data:{username:account,password:passwor ...

  7. 【京东详情页】——原生js学习之匿名函数

    一.引言 在js模块中,要给每一个功能封装一个匿名函数.为了更好的理解什么是匿名函数,为什么要用匿名函数,我做了一些查阅和学习. 二.匿名函数 什么是:在创建时,不被任何变量引用的函数. 为什么:节约 ...

  8. 深入理解计算机系统chapter5

    编写高效的程序需要:1.选择合适的数据结构和算法 2.编译器能够有效优化以转换为高效可执行代码的源代码 3.利用并行性 优化编译器的局限性 程序示例: combine3的汇编代码: load-> ...

  9. python文件名和文件路径操作

    Readme: 在日常工作中,我们常常涉及到有关文件名和文件路径的操作,在python里的os标准模块为我们提供了文件操作的各类函数,本文将分别介绍"获得当前路径""获得 ...

  10. ThinkPHP中:使用递归写node_merge()函数

    需求描述: 现有一个节点集合 可以视为一个二维数组 array(5) { [0] => array(4) { ["id"] => string(1) "1&q ...