select * from test where sno in (1,2);
select * from test where sno = 1 or sno = 2;求教一下这两句,那个性能高一点

解决方案 »

  1.   

    楼上有两个 说 in 的 ,我稍微的测试了下,正好手里有个表
    环境 centos6/10.2, 测试表 1000w数据,查询列 无索引 测试结果如下:select t.tradeno from confirm t  where tradeno = '00694120006462430' --21s  21s  24s
    or tradeno= '00634260006835323' or tradeno='00634520003458509';select t.tradeno from confirm t  where tradeno in('00694120006462430','00634260006835323','00634520003458509');       --24s  36s 30s
    查询结果并无很大诧异,or 稍微快一点点。
     ps:这个不一定能说明什么问题(考虑全面问题)
      

  2.   

    查资料好像说in括号里的条件最多一千个,但是or就没有限制。
      

  3.   

    感觉2个没什么差别,速度可能还是exists快
      

  4.   

    我觉得差不多,主要还是取决于两边的数据,如果in里面的数据量大的话,in的执行效率也是不高的,or也是一样。