我将两个字段facilityCode和facilitySubCode添加到现有表中。
ALTER TABLE SampleTable ADD facilityCode int not null
ALTER TABLE SampleTable ADD facilitySubCode int null
应用程序将使用facilityCode或facilitySubCode从此表中搜索记录,但不能同时使用两者。我想添加一个索引来帮助解决这个问题,但我不确定是否要创建:
1)包含两列的单个索引。如果是,则列出哪一列 第一?
2)2个指数,每个指数由1列组成。
作为信息,facilityCode可以有0到多个子代码,子代码只有1个设施代码。就使用情况统计而言,我不知道哪种搜索会更受欢迎,按设施搜索或按子代码搜索。我们可以假设MOST记录将同时具有facilityCode和facilitySubCode。
我应该选择哪个选项?为什么?
答案 0 :(得分:2)
如果您想要facilityCode
或facilitySubCode
进行搜索,但不想同时搜索两个列,则需要2个索引,每列一个。
两个列中的单个索引不理想的原因是因为任何列都不在索引的前沿,因此只能使用该索引来搜索该列。
有关为何会出现这种情况的详细信息,I would suggest reading the answers to this question。