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 ...
随机推荐
- JAVA课程设计——团队博客
JAVA课程设计--团队博客 1. 团队名称.团队成员介绍(需要有照片) 团队名称:"小羊吃蓝莓"小游戏 团队成员介绍: 成员 班级 学号 廖怡洁 网络1513 201521123 ...
- 201521123020《java程序设计》 第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1. ...
- Spring-Hibernate-web的延迟加载方案
1,现象与问题 /** * 由于Hibernate存在延迟加载问题,当Dao事务提交之后,session就关闭: * 此时如果到显示层就没有办法获取对象,使用openSessionInViewer是解 ...
- python实现裴波那契数列
def Fib(n): ''' 假定序号为0或者1,返回1,序号为2时返回2 ''' before = 1 after = 1 for i in range(n): before, after = a ...
- Android 之异步加载LoaderManager
LoaderManager: Loader出现的背景: Activity是我们的前端页面展现,数据库是我们的数据持久化地址,那么正常的逻辑就是在展示页面的渲染页面的阶段进行数据库查询.拿到数据以后才展 ...
- Eclipse dynamic web project 插件
下载了Eclipse Oxygen 发现没有Dynamic web Project 首先我们先了解下Dynamic Web Project If you want to create a c ...
- ios开发——实用技术篇&三维旋转动画
实现三位旋转动画的方法有很多种,这里介绍三种 一:UIView 1 [UIView animateWithDuration:1.0 animations:^{ 2 self.iconView.laye ...
- 西邮linux兴趣小组2014纳新免试题(二)
[第二关] 题目 http://round2.sinaapp.com/ 分析 打开后,戳进去发现一句名言,然后下一戳的url提示. 在网页源码中得到Page1024提示,于是写一个脚本 #!/bin/ ...
- mac 安装Beautiful Soup
Beautiful Soup是一个Python的一个库,主要为一些短周期项目比如屏幕抓取而设计.有三个特性使得它非常强大: 1.Beautiful Soup提供了一些简单的方法和Python术语,用于 ...
- ArrayListd的长度问题
namespace ArrayListd的长度问题{ class Program { static void Main(string[] args) { //需要的参数是object类型 //alt+ ...