我被給了這個查詢來更新報告,並且在我的計算機上運行需要很長時間。什麼是MySQL中的「point-in-select」?
select
c.category_type, t.categoryid, t.date, t.clicks
from transactions t
join category c
on c.category_id = t.categoryid
我問DBA是否有與查詢的任何問題,而DBA優化以這種方式查詢:
select
(select category_type
from category c where c.category_id = t.categoryid) category_type,
categoryid,
date, clicks
from transactions t
他所描述的第一子查詢的「點式選」。我從來沒有聽說過這個。有人可以解釋這個概念嗎?
而且第二個查詢有更好的表現嗎?我認爲他們應該非常相似。此外,我從來沒有聽說過「點選」,Google也沒有提到任何事情。 –
你有提供兩種'EXPLAIN'的機會嗎?第二個查詢實際上看起來更糟。 – zerkms
這是[相關子查詢](https://en.wikipedia.org/wiki/Correlated_subquery)。請注意,他的短語沒有出現在維基鏈接中,我從來沒有聽說過它。令我驚訝的是,這使您在RDBMS的現代版本上顯着提高了性能。 –