如题

解决方案 »

  1.   

    对sql的查询不了解
    个人认为是=比较快
    如果那个字段有索引的话可能会按照index来查询
    而like的话就要一个个的去匹配
    相对就慢了
      

  2.   

    like是完全匹配的时候是一样的如果是%关键字% 这种,那显然是=快不过like能干的事情, =不能干, 例子同上
      

  3.   

    能用=的请用=
    like 只有在不确定的时候再用 like '% %'
    搜索的方式不同,=的效率好的多
      

  4.   

    如果该字段有索引的话,= 和like 'xxx%'这样的效率差不多。如果是没有索引的话,都是全表扫描。 但是 = 还是比like 快。 全匹配和相似匹配,肯定是全匹配快。另: 如果加了索引, 记得用 like 'xxx %' 左匹配,才能在sqlserver 中用到索引。like '%xxx%' 和 like '%xxx' 其实都已经是全表扫描了
      

  5.   

    like就慢多了,尤其是%xxxx%的时候
      

  6.   

    回:caicai_45:like '%xxx%' 和 like '%xxx' ,如果此字段也有索引,也不能提高效率吗?
    是不是索引对like语句只有左匹配才有效啊?谢谢!
     
      

  7.   

    用full text index 结合contains函数才是真正模糊查询。原因:
    1. contains使用sql server内建查询引擎,效率远高于like. sql server 2005更为每一个数据库实例(instance)单独建立独享本文索引引擎。
    2. contains支持全字段搜索如 contains(YourTable.*, '"123*"');
    3. contains结合参数支持查找任意时态的单词如good, better, best, 只需注明查good.
    ....
    ....所以,性能功能上,contains模糊查询是正道。
      

  8.   

    只要走索引就快,如果like '%1233%'这种方式不走索引,所以慢。
    如果是like '1233%' 那么就具备了走索引的前提。使用= 可以直接对字段设置索引就可以了。
      

  9.   

    =速度快,like是模糊匹配,而=是等值匹配。
      

  10.   

    like 和 = 是用在不同的环境的.
    如果硬要比的话,个人感觉=快
      

  11.   

    这要看数据量 多大
    小量 like 和= 相差不多。
    如海量的数据就有区别,like会检索全表的 所以肯定慢 
      

  12.   

    我相信,能用=的时候没人会去like
      

  13.   

    like 'xx_' 和 like'xx%' 的速度应该与 ='xxy' 的速度差不多;
    理由是都可以使用索引,而且匹配记录也差不多是连续的一小段,like稍慢,差别在于用like可能要比较更多的记录,返回的数据也可能要多一些.但是对于实际应用来说LIKE也要灵活一些.like'%xx' 和 LIKE '_XX' 的速度就慢很多了,因为索引完全用不上,而且全表扫描是免不了的.类似的应用可以考虑把字段拆分,这样就可以用=了.个人见解~~~