1
我的分析團隊使用的查詢是這樣的:總和2個表的查詢使用子查詢
SELECT
SUM(ul.upload_bandwidth) + SUM(dl.download_bandwidth) AS total
FROM
upload_facts ul, download_facts dl
WHERE
ul.date BETWEEN '2011-09-01' AND '2011-09-30' AND
dl.date BETWEEN '2011-09-01' AND '2011-09-30';
這走的是一條很長的時間,12000秒,由於「加入」正在發生。
從兩個表中分別求和只需幾秒鐘。我正在考慮每天將一筆款項放在一張單獨的表格中以加快速度。不過,我認爲這應該比這更容易。
我想消除聯接和使用子查詢來做到這一點,但我不是100%確定如何。我嘗試了以下,但它沒有奏效。
SELECT
(select upload_bandwidth from upload_facts where date
BETWEEN '2011-09-01' AND '2011-09-30')
+
(select download_bandwidth from downloaded_facts where date
BETWEEN '2011-09-01' AND '2011-09-30');
完美。經過測試,原來的查詢耗時13000+秒,現在需要16次。還有一些改進的餘地,但是一個很大的改變。 – Jericon
'date'是兩個表中的索引嗎?如果不是的話,這會有很大的幫助。 –
是的。不過,在這兩個表格之間,該範圍內接近9 M行。 – Jericon