like '%关键字%'这样的查询不会用到索引,但是这种查询实在是很方便,尤其是在输入东西的时候,可以大大减少工作量
但是,这种查询的速度实在是个问题,不知道各位大大有没有什么妙招可以提高查询速度?

解决方案 »

  1.   

    看别人说的办法,
    一是用全文索引,这个我用不了,因为咱的条件可能是多个的,据说全文索引不能用多个条件?
    二是建关键字表,这个我用不了,因为咱的输入可能不预期的
    三是用charindex(),实际中试过,速度没有提高多少
    四是提高硬件性能之类的,这个就不说了,您懂的
    五是分开查询,结果合并,走的是减少数据量的路子?这个没觉得有多少意思
      

  2.   

    全文索引好像不能实现 like '%xx%'这种功能
    不知能否?
      

  3.   

    能尽量少用like就少用,个人觉得很慢
      

  4.   

    这种查询加普通索引没用。只能是全文索引,全文索引不能用like,可以用FreeText\Contains查询。“据说全文索引不能用多个条件?”,错,全文索引可以用多个条件。
      

  5.   

    相对于like   contains 的效率高一点 可以考虑一下where contains(colname, '关键字')
      

  6.   

    正如楼上,里面是关键字,好像不能精确的实现 like '%中国1%' 
    如果用contains(colname,'中国1')好像与中国有关的都会出来。建索引。like '%abc%' 会用到索引的。
      

  7.   

    like  就好比你查字典一样 一页一页的翻 , 所以要想提高效率的最有效的方法就是建立索引了  , sql 2005 的全文索引 ,或者 lucene ,或者 hubble , 可以任选其一 ~
      

  8.   

    like aa% 和%aa%索引的区别