在SQL Server 2005中,我有一个包含两列的表:parent_id (int)
和child id (int)
。我想制作一个复合键,因为我只希望表中每个可能的组合只有一个实例。
大多数搜索操作都会在parent_id
字段上完成,有些在child_id
字段上,而在两个字段上只有零星的搜索操作。
我计划在parent_id
字段上创建一个索引,也可能在child_id
字段上创建一个索引。这是有意义的还是SQL Server 2005能够在一列(主要是parent_id
)上使用聚簇复合主键进行索引查找,因此索引不是必需/可分配的?
答案 0 :(得分:16)
使复合主键(parent_id,child_id)强制实施唯一性。 SQL Server可以仅在列或parent_id上使用复合搜索,但它不能仅用于搜索child_id。如果需要,必须在child_id上创建一个单独的索引。