日期:2014-05-17  浏览次数:20484 次

sqlserver中关于索引的问题
  索引分为聚集索引和非聚集索引,以下是我个人的理解:我当一张表没有索引的时候是不是数据就像存放在堆里,没有顺序,当我们建了一个聚集索引后,会生成一张虚拟的索引表,用户查找数据的时候,先查找索引表,再快速定位到数据堆里的真实数据,如果建一个非聚集, 可以看成一个树,树的节点就是就是堆里数据的具体地址,查找数据时,会先爬树,根据节点的地址引用找到具体的数据。
  以上是我的理解,总觉得还是有点含糊,请大神指点下,这聚集索引和非聚集索引的具体存储方式,以及他们各自所用的场景。谢谢!

------解决方案--------------------
则无需纠结什么是非曲直。如果你因为拿不定主意“哪一个索引才是最常被访问的”而从来不使用聚集索引,我觉得完全可以表示赞同。但是如果你说“所有的主键都应该建立聚集索引”,我也赞成。黑的白的都是好猫。