日期:2014-05-19  浏览次数:21094 次

高分在线急求一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语句没法优化了。建索引也加快不了。因为你用的是左右模糊。