首先,我要指出,我对Server索引了解不多。
我的情况是,我有一个Server 2008数据库表,其中包含一个varchar(max)列,该列通常包含大量文本。
我的ASP.NET web应用程序有一个搜索工具,它可以查询此列的关键字搜索,并根据搜索关键字的数量而定,它们可能是一个或多个类似于SQL中的‘%关键字%’语句来执行搜索。
我的web应用程序还允许通过这个表中的其他列进行搜索,而不仅仅是这一列。其他表中也有一些连接。
我的问题是,是否值得在本专栏中创建一个索引来提高这些搜索查询的性能?如果是的话,什么类型的索引,仅仅索引一个列就足够了,还是我需要包括其他列,比如主键和其他可搜索的列?
发布于 2012-05-02 23:00:45
如果您正在执行“%关键字%”搜索,那么创建常规索引是不值得的。原因是索引的工作原理就像搜索字典,从中间开始,然后再将差异平分,直到找到单词为止。这个通配符查询就像要求您查找一个包含文本" to“或其他什么的单词--查找匹配的唯一方法是扫描整个字典。
然而,您可能会考虑进行全文搜索,这是针对这种场景(请看这里)的。
https://stackoverflow.com/questions/10422844
复制相似问题