高性能索引-高性能索引策略二

Posted 读书使人进步

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能索引-高性能索引策略二相关的知识,希望对你有一定的参考价值。

1.覆盖索引

  索引是一种查找数据的高效方式,如果mysql可以使用索引来直接获取列的数据,这样就不再需要读取数据行。如果一个索引包含所有需要查询的字段的值,就称之为“覆盖索引”。覆盖索引具有以下好处:

  • 索引条目通常远小于数据行大小,所以如果只需要读取索引,就会极大的减少数据的访问。
  • 索引是按列值顺序存储的,所以对I/O密集型的范围查询会比随机从磁盘读取每一行数据的I/O要少的多。
  • 一些存储引擎如MyISAM在内存只会缓存索引。
  • 由于InnoDB的聚族索引,覆盖索引对InnoDB非常有用。InnoDB的二级索引在叶子节点中保存了行的主键值,所以如果二级索引能够覆盖查询,则可以避免对主键索引的二次查询。

  不是所有类型的索引都可以成为覆盖索引。覆盖索引必须要存储索引列的值,而哈希索引、空间索引和全文索引都不存储索引列的值,所以MySQL只能使用B-Tree索引做覆盖索引。

  MySQL能够在索引中做最左前缀匹配的LIKE比较,因为该操作可以转换为简单的比较操作,但是如果是通配符开头的LIKE查询,存储引擎就无法匹配。

以上是关于高性能索引-高性能索引策略二的主要内容,如果未能解决你的问题,请参考以下文章

MySQL高性能索引策略

Mysql(14)—高性能的索引策略以及常见索引失效的情况

Mysql(13)—高性能的索引策略以及常见索引失效的情况

高性能的索引策略4-冗余和重复索引

高性能的索引策略2

高性能索引策略一