以下哪一个查询更快(LIKE vs CONTAINS)?
SELECT * FROM table WHERE Column LIKE '%test%';
或
SELECT * FROM table WHERE Contains(Column, "test");
第二种(假设你的意思是CONTAINS
,并且实际上把它放在一个有效的查询中)应该更快,因为它可以使用*某种形式的索引(在这种情况下,是一个全文索引)。当然,这种形式的查询只有在**列在全文索引中时才可用。如果不是,那么就只有第一种形式可用。
第一个查询,使用LIKE,将无法使用索引,因为它以通配符开始,所以总是需要全表扫描。
"CONTAINS "查询应该是。
SELECT * FROM table WHERE CONTAINS(Column, 'test');
我认为CONTAINS'花费的时间较长,并且使用了
Merge',因为你的查询`adventure-works.com'中有一个破折号("-")。
破折号是一个断裂词,所以CONTAINS
在全文索引中搜索adventure
,然后再搜索works.com
,并将结果合并。