我的查询语句的条件是 where Name='aa' and TypeID in(60,61,59,58)但是我发现用in后的对数据库的性能并不是很好,就是对表的逻辑读次数非常多,由于数据量非常大,所以容易造成数据库慢。怎么样来优化这个查询语句呢?由于 TypeID这个字段的值很多,所以也不适合where Name='aa' and TypeID=60 or Name='aa' and TypeID=61......大家有没有好的优化办法,谢谢了。

解决方案 »

  1.   

    用between 58 and 61呢?
      

  2.   

    恩,这个我也考虑过,但是他只适合这个,因为有些是in查询是没有规律的。虽然都是数字。就好比存在TypeID in(10,24,17)这类的就不好用between了~
      

  3.   

    而且between的逻辑读次数也非常多~
      

  4.   

    用条件>和<限定范围是不是要好一些呢~~~`
      

  5.   

    SQL会自动将 in(常量集合)转换为 or 的方式来查询.
    无甚其它好法.
      

  6.   

    如果合适,是否可以在name上做索引?用in的确不怎么快!