问题 1,
```select a.*,b.*
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 吗? |
|