varchar(60)的字段,30万数据,用Contains,还是Like
varchar(60)的字段,30万数据,要对这个字段进行检索
用Contains,还是Like
想得到的数据是Like '%关键字% '这样的效果
都说Like速度慢
这样的量,大家说说有没有必要加全文检索
高手帮忙,谢谢
------解决方案--------------------建索引
用charindex( '关键字 ',字段)> 0
------解决方案--------------------Like '%关键字% '
charindex( '关键字 ' , 字段)
对该字段建立索引
------解决方案--------------------Like '%关键字% ' 这种方式用不上索引。
------解决方案--------------------用Contains肯定会快(如果列的属性为text,ntext,varchar等)
------解决方案--------------------三十万没必要建全文索引,在搜索字段上建索引进行查询即可。
如果对多字段进行查询的话可能会慢。
------解决方案--------------------用函数charindex()和前面加通配符%的LIKE执行效率一样
------解决方案--------------------Contains是比like快
------解决方案--------------------没有必要加全文检索
如果是:
where 1=1 and 索引字段 Like '%关键字% '
則索引是不會起作用的
------解决方案--------------------30w的数据实在是寥寥,Like '%关键字% ' 也没什么问题
------解决方案--------------------楼主只有自己比较各种方法的效率了,因为其他人没这么大的数据,哈
------解决方案--------------------如果是varchar类型,charindex 和like 都可以,但是charindex的效果更快
如果是text 类型,数据量比较大,charindex函数无效,用全文索引
------解决方案--------------------学习过 ..目前还只会用LIKE
------解决方案--------------------我这二十六万,查聚集索引列很快charindex()方法,
如果多字段查询的话考虑全文索引用contains
------解决方案--------------------我着40万,用like 没有觉得很慢. 用不同的计算机效率有所不同吧