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

蛋疼的郁闷-聚集索引扫描、非聚集索引扫描、表扫描区别

时间:2014-08-09 00:02:56      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   数据   2014   ar   问题   div   

       本文适用于对数据库索引有一定深入的攻城师阅读参考。
      我们对于聚集索引扫描和表扫描比较容易理解的,但是对于非聚集索引扫描不太容易理解,这一点也往往容易使初学者感到很是困惑,原因是总认为没必要存在非聚集索引扫描,因为如果查询结果不具有高选择性的话,在聚集索引表中可以使用聚集索引扫描,在对表中会使用表扫描的,那么为什么要会存在非聚集索引扫描呢?
     之所以有这样的问题,是因为我们没有考虑到一种情况,那就是查询结果如果被建有非聚集索引的字段覆盖或包含了,而此时where条件字段上的非聚集索引对于本次查询结果又不具有高选择性,那么你说查询优化器会选择怎样的查询计划呢?1、非聚集索引查找?这肯定不行,因为结果集不具有高选择性。2、聚集索引扫描(或表扫描)?答案也不是,因为前两者开销还是比较大的。我们的优化器何不选择该非聚集索引呢?只要对该该索引执行一次扫描,那么查询根本不用访问数据页,因为查询结果字段都被该索引覆盖或包含了,这个代价可比前两者小多了。
       哈哈!
       bubuko.com,布布扣
bubuko.com,布布扣

蛋疼的郁闷-聚集索引扫描、非聚集索引扫描、表扫描区别,布布扣,bubuko.com

蛋疼的郁闷-聚集索引扫描、非聚集索引扫描、表扫描区别

标签:blog   http   使用   数据   2014   ar   问题   div   

原文地址:http://www.cnblogs.com/liuche/p/3900242.html

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