using  index,索引覆盖。什么是索引覆盖呢?就是,查询的列都在索引里面可以找到,这样就不用去数据库里面查找了。性能全表扫描高。如果这里用到了where条件,那么条件必须是索引的前缀列。============**从索引里面查数据**using  where,查询的列没有被索引覆盖,并且where 的条件非索引的前缀列。注意,这个必须有where条件!!!!毕竟是using  where嘛,没有where条件怎么叫using  where?=========**没有从索引里面查数据**using  where,using index:   查询的列被索引覆盖,且where条件非索引前缀列。如果是前缀列,就成了using index了。表达的意思是通过索引覆盖没办法查到所有数据,必须通过表才行。这里的查数据要深刻理解,查数据包括两部分,在哪里查,通过什么条件查。虽然有索引覆盖数据可以通过索引取出,可是查询条件不再索引中,或没办法走索引取数据。======**从索引取数据,但是没有从索引里面查数据**null ,查询的列没有被索引覆盖,但是where条件是索引前缀列。这样的情况下,using  index不合适,因为查询的字段没有从索引里面取。using  where也不合适,因为where条件么有走索引是 using  where,而这里没有using  where,所以是走了索引的。====**没有从索引取数据,但是从索引查数据**using index condition,首先排除using  index索引覆盖。查询的肯定不是索引覆盖的字段,另外不是using  where,说明where的条件不是前缀列,不然就是null了。如果没有where条件,比如select  * from 表  ,那么也是null。所以肯定有where条件,where条件要是前缀的话就成了null了。也不对,那就一个sql查询的字段没有索引覆盖,有where条件但是条件不是前缀列。那是什么?有条件但是不是前缀的话就成了using where了。答案是,未被索引覆盖,where条件是前缀列,但是是前缀列 的范围查询。就是说前缀列使用了大于小于等符号。using  temporary,使用了临时表来处理数据。这里讲一下临时表和衍生查询,衍生查询侧重的是查询,查询的表来自于select产出的表,不是直接查找数据库的表。临时表是经过处理的表,比如group  by,distinct  等。using filesort,文件排序。这里说明没有走索引排序

explain之extra相关推荐

  1. explain 之key || explain 之 rows || explain 之 extra

    explain 之key explain 之 rows 扫描行的数量 explain 之 extra

  2. 对MYSQL的explain中extra using where的理解

    这本来是个简单的玩意儿,但我始终不太明白这个到底是什么情况下才会出现,又代表了什么. 来看一下mysql官方文档对using where的解释: A WHERE clause is used to r ...

  3. MySql中Explain的Extra列

    Extra列 这一列展示的是额外信息.常见的重要值如下: 1)Using index:使用覆盖索引 覆盖索引定义:mysql执行计划explain结果里的key有使用索引,如果select后面查询的字 ...

  4. explain 之key rows extra

    explain 之 key possible_keys : 显示可能应用在这张表的索引, 一个或多个. key : 实际使用的索引, 如果为NULL, 则没有使用索引.key_len : 表示索引中使 ...

  5. mysql执行计划extra_四、MySQL优化之explain执行计划的extra属性

    explain之extra 包含不适合在其他列中显示但十分重要的额外信息 using filesort:文件排序 表明MySQL会对数据使用一个外部的索引排序, 而不是按照表内的索引顺序读取, mys ...

  6. 四、MySQL优化之explain执行计划的extra属性

    explain之extra 包含不适合在其他列中显示但十分重要的额外信息 using filesort:文件排序 表明MySQL会对数据使用一个外部的索引排序, 而不是按照表内的索引顺序读取, mys ...

  7. MySQL常用性能分析方法-profile,explain,索引

    1.查版本号 无论做什么都要确认版本号,不同的版本号下会有各种差异. >Select  version(); 2.执行状态分析 显示哪些线程正在运行 >show processlist; ...

  8. MySQL中EXPLAIN详解

    EXPLAIN作为MySQL的性能分析神器,读懂其结果是很有必要的,然而我在各种搜索引擎上竟然找不到特别完整的解读.都是只有重点,没有细节(例如type的取值不全.Extra缺乏完整的介绍等). my ...

  9. explain ref_MySQL 性能分析神器 —— EXPLAIN 用法与解读。

    ↑ 点击上面 "时代Java"关注我们,关注新技术,学习新知识! EXPLAIN作为MySQL的性能分析神器,读懂其结果是很有必要的,然而我在各种搜索引擎上竟然找不到特别完整的解读 ...

最新文章

  1. 8月22-23日 首届IT管理技术大会
  2. 多环境下读取不同的配置文件
  3. leetcode 676. Implement Magic Dictionary | 676. 实现一个魔法字典(DFS+Trie 前缀树)
  4. 通过#define连接字符串的特殊方法[转]
  5. Perl 第二章 簡單變量
  6. Linux uname 命令 打印系统信息
  7. StyleGAN进化过程详解
  8. python里面的工厂模式
  9. systemctl自定义service
  10. linux路由内核实现分析(四)---路由缓存机制(1)
  11. Windows7系统运行hadoop报Failed to locate the winutils binary in the hadoop binary path错误
  12. UIWebView捕获内部web点击事件
  13. 【实践】通过Composer,安装yii2-advanced
  14. C# 如何遍历删除某个控件上的所有子控件
  15. 科技文献检索课题 计算机,科技文献检索课题.doc
  16. 中国大学MOOC 浙江大学《程序设计入门——C语言》第6周:数组与函数 测验与作业(高精度小数)
  17. “零代码”写爬虫下载自己全部的豆瓣影评
  18. dex分包方案概述与multidex包的配置使用
  19. (原創) 白蘋驚魂記 (iPhone)
  20. 基于springboot框架的校园食堂外卖点餐系统

热门文章

  1. html实现自动发送qq邮箱,python使用QQ邮箱实现自动发送邮件
  2. 从「八个雅鹿」谈搜索技巧
  3. Tcp头部字段,与ip层关系,与udp区别,使用场景,Tcp状态
  4. php生成随机数方法,php生成随机数的三种方法
  5. mysql中使用除法
  6. 使用Clumsy和Process Explorer定位软件高CPU占用问题
  7. URL链接中的utm_source,utm_medium简析
  8. 清华大学五道口金融学院全日制博士(普博)项目简介
  9. python编写游戏怎么打包——详解python+pygame游戏开发之使用Py2exe打包游戏为exe文件
  10. Glide作为图片缓存,清除缓存的合理方法