问题 1,
from a
left join b
on a.id=b.fid
where a.id=10
像这种是先 where 还是先 join? 还是数据库会根据它自己的判断进行优化?
问题 2,
select a.*,b.*
from a
left join b
on a.id=b.fid
order by a.id
limit 10
和
SELECT a1.*, b.*
FROM (
SELECT *
FROM a
ORDER BY a.id
LIMIT 10
) AS a1
LEFT JOIN b
ON a1.id = b.fid;
这两句话是不是执行效率是一样的?
你们在实际工作中遇到类似的场景多吗? 会纠结用哪种 sql 吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.