高分在线急求一sql语句优化
select * from table1 where (biaoti like '%兼% ' or neirong like '%兼% ')
biaoti 是nvarchar
neirong 是ntext
这是个站内搜索功能
表中数据10万左右,查询非常的慢了
请问各位大虾 有办法优化吗?
------解决方案--------------------晕 你like ntext 肯定慢啊
我的方法是 建一个关键字的字段或者摘要 用来like
------解决方案--------------------在biaoti 上加索引.
------解决方案--------------------不知建全文索引能提高多少
------解决方案--------------------加索引吧,另外觉得标题varchar可以了
------解决方案--------------------Lucene .net
------解决方案--------------------sql语句本身可能是没什么优化的了。
直接考虑一下其它的方案吧!
------解决方案--------------------对于楼主你这种情况,对nvarchar和ntext类型的字段,创建索引也不会提高查询速度,楼主你可以考虑将工程转向专门面向全文检索的数据库平台(如TRS数据库)。
------解决方案--------------------把括号去掉
------解决方案--------------------站内搜索的功能做成标题和内容二选一的查询条件就足够了,一般都是搜标题,搜内容的很少
------解决方案--------------------like '%兼% '
这样的条件无法使用索引的,并且ntext也不能建索引
只能用全文索引
或者调整你的数据库结构
------解决方案--------------------这个SQL语句没法优化了。建索引也加快不了。因为你用的是左右模糊。