基本介绍
- 如果一个索引包含所有需要查询的字段的值,我们称之为覆盖索引,减少回表(通过联合索引可)
- 不是所有类型的索引都可以称为覆盖索引,覆盖索引必须要存储索引列的值
不同的存储实现覆盖索引的方式不同,不是所有的引擎都支持覆盖索引, memory不支持覆盖索引
优势
索引条目通常远小于数据行大小,如果只需要读取索引,那么mysq就会极大的减少数据访问量
- 因为索引是按照列值顺序存储的,所以对于IO密集型的范围査询会比随机从磁盘读取每一行数据的I O要少的多
- 一些存储引擎如 MYISAM在內存中只缓存索引,数据则依赖于操作系统来缓存,因此要访问数据
- 需要一次系统调用,这可能会导致严重的性能问题
- 由于 INNODB的聚簇索引,覆盖索引对 INNODB表特别有用
