美文网首页
覆盖索引

覆盖索引

作者: wwwxi | 来源:发表于2017-09-13 18:12 被阅读0次

覆盖索引

基础解释

索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,  
因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读  
取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了(或覆盖了)  
满足查询结果的数据就叫做覆盖索引。  
ps:
它包括在查询里的Select、Join和Where子句用到的所有列(即建索引的字段  
正好是覆盖查询条件中所涉及的字段,也即,索引包含了查询正在查找的数据)。

查看方法

explain sql语句:  
  extra  (use index)有这个说明是覆盖索引

使用条件

索引必须存储列的值   

ps:Hash 和full-text索引不存储值,因此MySQL只能使用B-TREE。
并且不同的存储引擎实现覆盖索引都是不同的。并不是所有的存储引擎  
都支持它们。如果要使用覆盖索引。一定要注意SELECT 列表值取出需  
要的列。不可以是SELECT * ,因为如果将所有字段一起做索引会导致
索引文件过大。查询性能下降。不能为了利用覆盖索引而这么做。

优点

MySQL只需要通过索引就可以返回查询所需要的数据,而不必在查到索  
引之后进行回表操作,减少IO,提高了效率

相关文章

  • 覆盖索引

    覆盖索引 基础解释 查看方法 使用条件 优点

  • 覆盖索引

    覆盖索引 覆盖索引(covering index)指一个查询语句的执行只用从索引中就能够取得,不必从数据表中读取。...

  • 覆盖索引

    覆盖索引 1、当发起一个被索引覆盖的查询时,在explain的extra列可以看到using index的信息,此...

  • index pushdown

    表结构 索引覆盖 索引下推

  • 辅助索引种类细分

    单列的辅助索引 联合多列辅助索引(覆盖索引) 唯一索引

  • mysql唯一索引 覆盖索引

    当mysql唯一索引是组合索引时,如果查询条件满足组合索引的覆盖条件,同样将是覆盖索引。 测试:新建表t: 添加唯...

  • MySQL覆盖索引

    MySQL覆盖索引 1.定义: 一个索引包含(或者覆盖)所有需要查询的字段

  • 什么是覆盖索引和回表吗?

    覆盖索引指的是在⼀次查询中,如果⼀个索引包含或者说覆盖所有需要查询的字段的值,我们就称之为覆盖索引,⽽不再需要回表...

  • MySQL索引

    MySQL索引 索引介绍 索引原理与分析 组合索引 索引失效分析 索引介绍 什么是索引索引:包括聚集索引、覆盖索引...

  • 高性能mysql精要

    1、explain 中 extra (using index ) 表示覆盖索引,sql优化中最好能使用覆盖索引,否...

网友评论

      本文标题:覆盖索引

      本文链接:https://www.haomeiwen.com/subject/juslsxtx.html