我有一个包含大量(行)行500k的表,MSSQL Server 2008.我有一个包含nvarchar产品ID的列,其长度通常为15个字符,字母和数字,例如FF93F348HJKCF5HW9
。我希望能够以最佳性能搜索此产品ID。我已经对在此专栏上使用全文索引进行了一些研究,我并不认为使用CONTAINS
使用全文索引比使用LIKE '%%'
提供了任何好处。这看起来可以归结为全文索引在搜索整个单词时更有用,而不是一系列字符。
有人可以为我确认/否认这一点吗?
答案 0 :(得分:1)
全文索引是关于在非结构化文本数据中搜索语言单词。您的数据不包含单词,只包含一系列字符。
我没有对此进行测试,但只要您的数据被编入索引,我希望LIKE
实际上会更快。 CONTAINS
用于搜索单词&字样结构。
如果您的要求是“自动完成”,那么LIKE
将会很好地执行,因为当您搜索LIKE 'F5521%'
等内容时,优化程序将使用INDEX SEEK。
This MSDN article解释了CONTAINS
关键字的基础知识。