oca*_*nal 9 mysql sql inner-join
我可以为这些查询得到相同的结果,但哪一个是最快,最有效的?
在()或内部连接的位置?
SELECT `stats`.`userid`,`stats`.`sumpoint`
FROM `stats`
INNER JOIN users
ON `stats`.`userid` = `users`.`userid`
WHERE `users`.`nick` = '$nick'
ORDER BY `statoylar`.`sumpoint` DESC limit 0,10
Run Code Online (Sandbox Code Playgroud)
和
SELECT `stats`.`userid`,`stats`.`sumpoint`
FROM `stats`
WHERE userid
IN (
SELECT userid
FROM `users`
WHERE `users`.`nick` = '$nick'
)
ORDER BY `stats`.`sumpoint` DESC limit 0,10
Run Code Online (Sandbox Code Playgroud)
Ste*_*ung 13
取决于您的SQL引擎.具有合理查询优化器的较新SQL系统很可能会将两个查询重写为同一计划.通常,使用连接(第一个查询)重写子查询(第二个查询).
在可能没有很好的查询优化器的简单SQL引擎中,连接应该更快,因为它们可以在运行外部查询之前将子查询运行到临时内存表中.
但是,在一些内存占用有限的SQL引擎中,子查询可能更快,因为它不需要连接 - 这会产生更多数据.
总而言之,这取决于.
| 归档时间: |
|
| 查看次数: |
17541 次 |
| 最近记录: |