我在广告公司做实习,我已经实施了一个工具来收集所有必要的数据表单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性能问题。只有当你让你的加入快速 - 那么你可以去聚合 –