我在網上看到別人總結的一句話: 聚集索引是如此的重要和珍贵,所以笔者总结了一下,一定要将聚集索引建立在: 1、您最频繁使用的、用以缩小查询范围的字段上; 2、您最频繁使用的、需要排序的字段上。我在其文章上還看到另一句話:
建立聚集索引要求的:“既不能绝大多数都相同,又不能只有极少数相同”的规则。那我做的系統幾乎都要按照時間搜索資料,而且時間還是帶秒的"2009-05-25 08:10:50"
那豈不是違背了“不能極少數相同”的原則?因為表中所有的時間都不相同....
我能不能把聚集索引設定在時間這一欄上?作者寫的這兩句話有沒有矛盾?
建立聚集索引要求的:“既不能绝大多数都相同,又不能只有极少数相同”的规则。那我做的系統幾乎都要按照時間搜索資料,而且時間還是帶秒的"2009-05-25 08:10:50"
那豈不是違背了“不能極少數相同”的原則?因為表中所有的時間都不相同....
我能不能把聚集索引設定在時間這一欄上?作者寫的這兩句話有沒有矛盾?
看看这个你就明白了。
select cast(getdate() as varchar)
/*
------------------------------
05 26 2009 11:52AM(所影响的行数为 1 行)
*/
楼主说的不错。聚集索引的作用确实
1、您最频繁使用的、用以缩小查询范围的字段上;
2、您最频繁使用的、需要排序的字段上。至于"既不能绝大多数都相同,又不能只有极少数相同",楼主可以换个思路来理解。
楼主查时间肯定不会查时间='2009-05-25 08:10:50'。所以楼主并不需要在时间这列上加索引。比如字段A, B, C 三个字段组合起来就能定位一条记录,那么就直接把A,B,C 设置为聚集索引。
就OK了。
lz看的那篇文章很多真是误人子弟。