像'%Query%'和全文searchCONTAINS查询的性能

我有一个情况,我想search一个单词

对于这种情况,从性能angular度来看哪个查询是好的?

Select Col1, Col2 from Table Where Col1 Like '%Search%' 

要么

 Select Col1, Col2 from Table Where Col1 CONTAINS(Col1,'Search') 

全文search(使用CONTAINS)将比使用LIKE和通配符更快/更高效。 全文search(FTS)包括定义全文索引的能力,FTS可以使用。 不知道为什么你不会定义一个FTS指数,如果你打算使用function…

像左侧的通配符(IE: LIKE '%Search' )不能使用索引(假设列存在),保证表扫描。 我还没有testing和比较,但正则expression式有相同的陷阱。 为了说明, LIKE '%Search'LIKE '%Search%' 不能使用索引; LIKE 'Search%'可以使用索引。

对于一个典型的数据库,假设在search的字段上build立了适当的全文search索引,CONTAINSsearch可以更快。 LIKE操作符的评估通常不使用索引,因此必须读取所有数据。

就像在桌上search它一样,会杀死性能。 更好地申请像CTEsearch。