我在廣告公司做實習,我已經實施了一個工具來收集所有必要的數據表單facebook並將它們導入到數據庫中。從多個表中選擇和總和vs加入和總和
現在我試圖操縱這些數據,首先做一些測試用例並獲得一些結果。這些表格每天增長35k行,所以在使用該工具一個月後,我注意到我用來獲取某些adcreatives點擊總和的查詢開始減慢。
我在問,如果我使用的查詢可以加快,如果我用它加入和如何。
這裏是查詢我對每adcreative點擊的總和(用的adgroup_id,CAMPAIGN_ID作爲連接到其他表):
<!-- language-all: lang-sql -->
SELECT t1.adgroup_id, t1.campaign_id, t1.creative_ids, SUM(t2.clicks) AS clicks
FROM adgroups t1, adgroup_stats t2
WHERE t1.adgroup_id = t2.adgroup_id
GROUP BY t1.creative_ids
ORDER BY clicks DESC
目前查詢需要3秒完成一個專用的服務器上,我猜在6個月之後,桌子的增長將超過60秒。
編輯:這裏是查詢的解釋(雖然這是我第一次真正使用它,並不能肯定這是什麼意思)
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 671549 Using temporary; Using filesort
1 SIMPLE t1 ref PRIMARY PRIMARY 8 fbads.t2.adgroup_id 358 Using index
**首先**你需要運行你的連接,並看到它的性能沒有任何聚合。你運行EXPLAIN查詢了嗎?沒有解釋,不應該接受SQL性能問題。只有當你讓你的加入快速 - 那麼你可以去聚合 –