SQL查询中用什么方法可以提高in的效率 或者换成什么

select * from user where user_id in("23232","32321","321321","32334”);用什么方法可以提高查询的速度

第1个回答  2015-02-10
你这涉及到union all,or 和in 及索引字段的,,,,

1、对于索引列来最好使用union all,因复杂的查询【包含运算等】将使or、in放弃索引而全表扫描,除非你能确定or、in会使用索引。

2、对于只有非索引字段来说你就老老实实的用or 或者in,因为 非索引字段本来要全表扫描而union all 只成倍增加表扫描的次数。

3、对于及有索引字段【索引字段有效】又包含非索引字段来时,按理你也使用or 、in或者union all 都可以,但是我推荐使用or、in。

上面都说的是单表的情况,所以你这个问题你给出语句信息,
并不能简单的说谁比in快的,,,,要看索引字段情况的本回答被提问者采纳
相似回答