Sql单索引或多索引

pdi*_*ddy 5 sql t-sql sql-server indexing sql-server-2005

假设我有Products表.

在我的UI上,我允许用户按名称,描述,代码进行搜索用户只能搜索条件.

我应该为每个标准创建索引:名称,描述,代码还是为所有3创建一个单一索引?

什么会让你选择一个与另一个?

Rem*_*anu 9

每当您在多个列上构建索引时,只有在指定了最左侧的列时才能使用create index .. on T(A, B, C)索引.如果搜索列,则可以使用索引.如果搜索列,则可以使用索引.如果你在搜索栏则可以使用索引.但是,该指数将不会,如果你在搜索栏使用,或在列或列,并只.AA BA B CB C BC

因此,如果要搜索"产品" "描述" "代码",则需要在每个上搜索单独的索引.如果要在三列中的任何一列中搜索术语,则很可能需要全文搜索.对于描述也是如此,你不太可能想要一个正常的索引,很可能你需要一个全文索引.


And*_*rew 8

你需要一个索引.所有三个的一个索引只会使涉及索引中第一个标准的搜索受益,或者与第二个标准结合使用,等等.