全文索引和varchar列上的常规索引之间的区别(和优点/缺点)究竟是什么?什么时候用哪个索引?
我有许多varchar列(地址 – 城市名称,街道名称等),我需要以最高效的方式进行搜索,并且我正在找出要使用的索引类型以及为什么.
谢谢!
解决方法
这取决于你想要做的搜索类型.例如,您不能使用此查询的常规索引:
SELECT * FROM [MyTable] WHERE [MyColumn] LIKE '%' + @SearchText + '%'
这不是sargable.这是可以,但selectivity可能不是很好:
SELECT * FROM [MyTable] WHERE [MyColumn] LIKE @SearchText + '%'
您使用完全不同的全文索引:
SELECT * FROM [MyTable] WHERE CONTAINS([MyColumn],@SearchText)