SQL查询中用什么方法可以提高in的效率 或者换成什么
select*fromuserwhereuser_idin("23232","32321","321321","32334”);用什么方法可以提高查询的速度...
select * from user where user_id in("23232","32321","321321","32334”);用什么方法可以提高查询的速度
展开
1个回答
展开全部
你这涉及到union all,or 和in 及索引字段的,,,,
1、对于索引列来最好使用union all,因复杂的查询【包含运算等】将使or、in放弃索引而全表扫描,除非你能确定or、in会使用索引。
2、对于只有非索引字段来说你就老老实实的用or 或者in,因为 非索引字段本来要全表扫描而union all 只成倍增加表扫描的次数。
3、对于及有索引字段【索引字段有效】又包含非索引字段来时,按理你也使用or 、in或者union all 都可以,但是我推荐使用or、in。
上面都说的是单表的情况,所以你这个问题你给出语句信息,
并不能简单的说谁比in快的,,,,要看索引字段情况的
1、对于索引列来最好使用union all,因复杂的查询【包含运算等】将使or、in放弃索引而全表扫描,除非你能确定or、in会使用索引。
2、对于只有非索引字段来说你就老老实实的用or 或者in,因为 非索引字段本来要全表扫描而union all 只成倍增加表扫描的次数。
3、对于及有索引字段【索引字段有效】又包含非索引字段来时,按理你也使用or 、in或者union all 都可以,但是我推荐使用or、in。
上面都说的是单表的情况,所以你这个问题你给出语句信息,
并不能简单的说谁比in快的,,,,要看索引字段情况的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询