在索引列上用LIKE搜索FTS的性能提升)?

时间:2010-09-30 16:07:20

标签: sql-server performance tsql indexing full-text-search

询问“full-text search sql server 2005"

与在索引列上使用tsql LIKE的搜索相比,使用FTS(全文搜索)会更快吗?
为什么呢?
多少钱?

3 个答案:

答案 0 :(得分:3)

是的,对于列中间的搜索,FTS会更快,如果您在列的开头搜索的内容只会更快

where lastname like 'S%'

会很快

where lastname like '%S%'

会很慢并且不会使用索引,因为它必须遍历整个列

答案 1 :(得分:1)

根据您的应用程序要求,首先要记住的是FTS是基于单词的,而LIKE是匹配​​字符模式。因此,例如LIKE会在'overrated'中找到'%rate%'而在'rate'上找不到FTS搜索。

除此之外,SQLMenace's answer很好地涵盖了这个主题。

答案 2 :(得分:0)

我当然更喜欢看到任何文档的链接......

"CONTAINS (Transact-SQL). SQL Server 2008 R2 Books Online"有段落:

  • “LIKE与全文搜索的比较

    *与全文搜索相比,LIKETransact-SQL谓词仅适用于字符模式 此外,您不能使用LIKE谓词来查询格式化的二进制数据。

    此外,针对大量非结构化文本数据的LIKE查询比针对相同数据的等效全文查询慢得多。

    针对数百万行文本数据的LIKE查询可能需要几分钟才能返回;而对于相同的数据,全文查询只需几秒或更短时间,具体取决于返回的行数*“