子查询优化
来源:

xiaowu9
2017-02-05
像下面这么两条语句:
方式一:select *,(select id from b where a.id=b.aid and a.uid=b.uid) from A limit 1,2
方式二:select * from A join (select aid from b where uid=1) left on a.id=b.aid (略)
在效率方面有什么区别?
现在有这么一种需求,分页查询中需要统计用户对收藏的商品是否已购买过.使用EXPLAIN【方式二】分析发现会扫描用户买过的所有商品,而分页只需要十来条而已,所以想用【方式一】来处理,这样可以保证扫描条数。用户收藏的商品可以买过,可能没有购买过.望指教
写回答
1回答
-
sqlercn
2017-02-05
建议使用第二种方式,从需求上来看也确实需要扫面一个用户所有购买过的商品后才能知道收藏的商品是否购买过。
00
相似问题