1

我正在向现有表中添加两个字段,facilityCode 和 facilitySubCode。

ALTER TABLE SampleTable ADD facilityCode int not null
ALTER TABLE SampleTable ADD facilitySubCode int null

应用程序将使用 facilityCode 或 facilitySubCode 但不能同时使用这两种方法从该表中搜索记录。我想添加一个索引来帮助这个查询,但我不确定是否要创建:

1) 包含两列的单个索引。如果是这样,首先列出哪一列?

2) 2 个索引,每个索引由 1 列组成。

作为信息,一个设施代码可以有 0 到多个子代码,而一个子代码只有 1 个设施代码。至于使用统计,我不知道哪个搜索会更流行,按设施搜索或按子代码搜索。我们可以假设 MOST 记录将同时具有设施代码和设施子代码。

我应该选择哪个选项,为什么?

4

1 回答 1

2

如果您想按facilityCode, 或搜索facilitySubCode,但不要同时搜索两列,则需要 2 个索引,每列一个。

跨两列的单个索引不理想的原因是,任何不在索引前沿的列都无法仅通过该列使用该索引进行搜索。

有关为什么会这样的更多详细信息,我建议阅读此问题的答案

于 2013-06-28T18:48:27.003 回答