Mysql Explain 参数解释
查询计划使用以及使用说明
- table:显示这一行数据是关于哪张表的。
- 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行,往后,逐行做全表扫描,运气不好扫描到最后一行
- possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。
- key:实际使用的索引,如果为null,则没有使用索引。
- key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好。
- ref:显示索引的哪一列被使用了,如果可能的话,是一个常数。
- rows:mysql认为必须检查的用来返回请求数据的行数,越小越好。
- 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 参数解释的更多相关文章
- mysql explain参数解析
建表语句 -- ---------------------------- -- Records of departments -- ---------------------------- INSER ...
- mysql explain参数详解
主要对几个参数做一些记录 type:显示的是访问类型 从最好到最差的连接类型为:const.eq_reg.ref.range.index和ALL 至少要达到range,基本是ref 最好是const ...
- mysql explain的解释
详解MySQL中EXPLAIN解释命令 explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上e ...
- mysql explain 命令解释
转载http://bzyyc.happy.blog.163.com/blog/static/6143064720115102551554/ key实 际使用的索引.如果为NULL,则没有使用索引.很少 ...
- mysql命令行各个参数解释
mysql命令行各个参数解释 http://blog.51yip.com/mysql/1056.html Usage: mysql [OPTIONS] [database] //命令方式 -?, ...
- mysql 运行计划explain具体解释
explain主要是用来获取一个query的运行计划,描写叙述mysql怎样运行查询操作.运行顺序,使用到的索引,以及mysql成功返回结果集须要运行的行数.能够帮助我们分析 select 语句,让我 ...
- Mysql EXPLAIN列的解释
转自:http://blog.chinaunix.net/uid-540802-id-3419311.html explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择 ...
- mysql explain字段意思解释
mysql explain字段意思解释 explain包含id.select_type.table.type.possible_keys.key.key_len.ref.rows.extra字段 id ...
- 【转载】 mysql explain用法
转载链接: mysql explain用法 官网说明: http://dev.mysql.com/doc/refman/5.7/en/explain-output.html 参数: htt ...
随机推荐
- 201521123101 《Java程序设计》第10周学习总结
1.本周学习总结 2.书面作业 1.finally,题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? finally不管是否捕获到异常,始终会被 ...
- What is uClinux?
What is uClinux? The original uClinux was a derivative of Linux 2.0 kernel intended for microcontrol ...
- vue2.0动态绑定图片src属性值初始化时报错
在vue2.0中,经常会使用类似这样的语法 v-bind:src = " imgUrl "(缩写 :src = " imgUrl "),看一个案例 <te ...
- kvm 虚拟化的使用
kvm原理:基于内核空间虚拟化,加载内核模块,来做到虚拟化(简称内核空间).基于qemu连接内核,driver驱动连接kvm的API接口(简称用户空间): hypervisor 管理硬件设备,传统的虚 ...
- HDFS的web接口
50070端口查看NameNode状态,该端口的定义位于core-default.xml中,可以在core-site.xml中自行修改. 50075端口查看DataNode的,该地址和端口的定义位于h ...
- Web 项目更改项目名
简单的记录web开发中基本的操作. 更改项目名 直接修改 找到原项目中的.project 文件,更改中项目名称.然后在同目录下找到.mymetadata 文件 并更改name.context-root ...
- TCP/IP中你不得不知的十大秘密
这段时间 有一点心很浮躁,不过希望自己马上要矫正过来.好好学习编程!这段时间我想好好地研究一下TCP/IP协议和网络传输这块!加油 一.TCP/IP模型 TCP/IP协议模型(Transmission ...
- java 基础语法 2
一.语句
- iOS逆向环境以及常用命令行(逆向一)
一.环境介绍 越狱环境:iPhone 5s iOS9.3.1 yueyu:~ root# uname -a Darwin yueyu 15.4.0 Darwin Kernel Version 15.4 ...
- Tensorflow学习教程------创建图启动图
Tensorflow作为目前最热门的机器学习框架之一,受到了工业界和学界的热门追捧.以下几章教程将记录本人学习tensorflow的一些过程. 在tensorflow这个框架里,可以讲是若数据类型,也 ...