码迷,mamicode.com
首页 > 其他好文 > 详细

覆盖索引

时间:2019-01-18 01:06:27      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:聚集   行记录   操作   传输   sele   过多   记录   mysq   增加   

1.什么是覆盖索引
即从辅助索引中就可以得到查询的记录,而不需要查询聚集索引中的记录。使用覆盖索引的好吃是辅助索引不饱含整行记录的所有信息,故其大小要远小于聚集索引,因此可以减少大量的IO操作。

2.例子
我们常常说select的时候最好不要 select * ,而要写成select col1,col2....这种形式,但是如果在不使用覆盖索引的情况下, select * 和select col1,col2....的区别不大,select * 只不过多返回了一些字段,增加了一点网络传输上的消耗罢了,其实可以忽略不计。但是如果使用到了覆盖索引,那么他们之间的执行时间差距就大了。select col1 from table; select * from table;如果col1是一个辅助索引,那么Mysql只需要查询这个辅助索引就够了,而select * from table除了要查询辅助索引以外,还要再查一次聚集索引,这就就造成了额外的性能开销。数据量大的情况下,这两种查询的执行时间可能会相差十几倍。

覆盖索引

标签:聚集   行记录   操作   传输   sele   过多   记录   mysq   增加   

原文地址:https://www.cnblogs.com/lanqi/p/10285399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!