//
1、索引条目通常远小于数据行大小,所以如果只需要读取索引,那么MYSQL就会极大地减少数据访问量。这对缓存的负载非常重要,因为这种情况下响应时间大部分花费在数据拷贝上。覆盖索引对于I/O密集型的应用也有帮助,因为索引比数据更小,更容易全部放入内存中。
2、因为索引是按照列值顺序存储的,所以对于I/O密集型的范围查询会比随机从磁盘读取每一行数据的I/O要少得多。对于某些存储引擎,例如MYISAM和PERCONA XTRADB,甚至可以通过OPTIMIZE命令使得索引完全顺序排列,这让简单的范围查询能使用完全顺序的索引访问。
3、一些存储引擎如MYISAM在内存中置换村索引,数据则依赖于操作系统来缓存,因此要访问数据需要一次系统调用。这可能会导致严重的性能问题,尤其是那些系统调用占了数据访问中的最大开销的场景。
4、由于INNODB的聚簇索引,覆盖索引对INNODB表特别有用。INNODB的二级索引在叶子节点中保存了行的主键值,所以如果二级主键能够覆盖查询,则可以避免对主键的二次查询。
云南然成科技有限公司是一家定位于高端网站建设、系统开发、APP开发、软件定制的高新科技公司。我们的团队成员曾来自不同行业,拥有不同背景,公司成立之前,都在互联网行业从事相关工作多年,一直奋斗在APP开发、微信开发、系统开发、商城网站开发第一线。多年的累积是一种财富,我们擅于运用所知所得诠释他们眼中的认知,更善于站在客户的立场上去思考,跨界创新,整合设计。