子查询优化

来源:

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

建议使用第二种方式,从需求上来看也确实需要扫面一个用户所有购买过的商品后才能知道收藏的商品是否购买过。

0
0

高性能可扩展MySQL数据库设计及架构优化 电商项目

从基础设计入手,设计高性能可扩展的千万级数据库架构

1155 学习 · 166 问题

查看课程