我是全文搜索新手,我使用了以下查询
Select * From Students Where FullName LIKE '%abc%'
学生表包含一百万条随机记录,如下所示 'QZAQHIEK VABCNLRM KFFZJYUU'
只花了 2 秒就得到了 1100 行。 如果两秒内搜索到百万条记录为什么我还要使用全文搜索?!! Like 谓词是否也使用了全文索引?
最佳答案
没有。 LIKE 不使用全文索引。 See here.
现在计算机的速度非常快,但如果您看到搜索结果的速度比您预期的要快,则您可能只是返回了缓存的结果集,因为您之前执行了相同的查询。为了确保您没有获得缓存的结果,您可以使用 DBCC DROPCLEANBUFFERS。看看this post对于某些 SQL Server 缓存清除选项。
摘自链接页面:
LIKE 与全文搜索的比较
与全文搜索相反,LIKE Transact-SQL 谓词仅适用于字符模式。此外,您不能使用 LIKE 谓词来查询格式化的二进制数据。此外,针对大量非结构化文本数据的 LIKE 查询比针对相同数据的等效全文查询要慢得多。针对数百万行文本数据的 LIKE 查询可能需要几分钟才能返回;而针对相同数据的全文查询只需几秒或更短的时间,具体取决于返回的行数。
关于sql - 为什么我要费心使用全文搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502872/