我有兩個SQL的,給了我同樣的結果:子查詢與加入和哪裏 - 哪一個更快?
查詢1:
SELECT
u.*, COUNT(po.order_id) products_count
FROM (SELECT * FROM orders o WHERE o.date >= (CURRENT_DATE() - INTERVAL 1 MONTH)) o
LEFT JOIN products_orders po ON po.order_id=o.id
JOIN users u ON u.id=o.user_id
GROUP BY po.order_id
和查詢2:
SELECT
u.*, o.id order_id, COUNT(po.order_id) products_count
FROM users u
JOIN orders o ON o.user_id=u.id
LEFT JOIN products_orders po ON po.order_id=o.id
WHERE o.date >= (CURRENT_DATE() - INTERVAL 1 MONTH)
GROUP BY po.order_id
我不知道..這應該是更快? 查詢說明顯示他們是平等的......你認爲什麼人?
如果解釋計劃是相同的,那麼表現應該是相同的。記住基於成本的優化器可以用你的SQL「小提琴」來獲得最好的結果(至少它在正確性和性能方面認爲是最好的) – xQbert
請不要交叉發帖:https:// dba .stackexchange.com/questions/179878/subquery-vs-join-and-where-which-one-is-faster –
已投票刪除 – breq