我有几张4到10行的表。我们预计这些表格不会再增加几行。
在主键上放置索引是否有意义。
答案 0 :(得分:11)
如果他们有你所说的主键,那么你已经拥有至少一个索引。这可能是一个聚集索引,我觉得你很高兴。
答案 1 :(得分:6)
正确的答案是: IT并不重要。
只要表格小到足以容纳一个8k数据页面,SQL服务器就可以简单地加载那一页,并让“整个表”可以随心所欲地完成任务。
集群索引 表本身,所以如果你添加一个聚簇索引,你实际上并没有增加任何开销,你只是指定一个排序首选项在表所在的单个数据页中。
另一方面,非聚集索引是一个单独的对象,因此它只会浪费空间,因为它永远不会被使用。 (查询优化器永远不会加载只有指向单个数据页的指针的索引。它只是直接加载唯一的数据页。)
一定要确保你有一个主键,但是如果你也添加了聚簇索引,那么除非表的增长超过一个页面,否则它不会有太大意义(并且可能永远不会被使用)。
答案 2 :(得分:2)
您至少应该拥有聚集索引。我会说是的,继续索引它们。
这肯定不会受到影响,如果该表中的数据超出您的预期,您至少会有一个简单的索引策略来帮助减轻增加的表大小的影响。
答案 3 :(得分:1)
如果您使用主键,那么您将拥有一个聚集索引。
答案 4 :(得分:1)
希望你有一个主键,它是你的Clustered索引。但是除了索引中的列之外,4到10行表很小 - 查找索引与实际表扫描相关的成本更高。
请有人在这里保持诚实 - 对于大型生产和报告环境中的SQL 2008,我们不会对行数少于50k的表上的索引感到烦恼。
答案 5 :(得分:0)
我和Tapori在一起;添加索引会不必要地增加开销。