今天面试的时候问的,个人没什么把握,问问大家的意见。
索引分为两种,聚众索引还有就是索引?具体的区别在那里阿?设计的时候应该怎么样考虑啊?

解决方案 »

  1.   

    一般是不考虑建立索引,因为不管你建立成什么数据类型,一般情况下,男女比率是接近,这样你在查询时,由于筛选度不够,SQLSERVER优化器
    不会考虑使用索引,而是考虑扫描表。这样的情况下,建立索引反而会增加空间大小以及插入,更新数据时带来的维护索引的消耗。索引分类,如果针对SQLSERVER,具体是要看你在哪个环境下,如果在2000的版本,的确是包括聚集索引和非聚集索引
    但是到了2005,是多了1个XML索引,其还细分到XML主索引和XML辅助索引。至于区别,你自己查阅相关资料了解就可以了,这个资料很多的。包括设计的原则,这些在联机帮助有很大两的篇章,在网络上也有很多资源。
      

  2.   

    聚集索引就是将表上的数据按索引关键字的物理顺序重新排列,因为影响的是数据的物理存储顺序,所以每个表只能创建一个聚集索引而非聚集索引可以在堆上或者聚集索引之上创建,就像是在原表之外再对数据做一遍登记,然后按索引关键字顺序存好,往往非聚集索引的最末端(叶级页)上记录着数据的物理行号或者聚集索引的键值.非聚集索引每表可以创建249个,因为在sysindexes表中,用于表示索引的ID号indexid列是tinyint类型,最大值只能到255,而251~254无用,255表示表中有image、text或者ntext等数据,0表示无索引,1表示聚集索引,所以只剩余了249个ID号用于表示非聚集索引什么时候用什么索引,好像没有很绝对的说法,你多多了解一下两种索引的原理,这样当你再清楚了查询的详细情况之后,就很容易确认该用什么索引了。