我在一家广告公司实习,我已经实现了一个工具来从 facebook 收集所有必要的数据并将它们导入数据库。
现在我正在尝试操作这些数据,首先是制作一些测试用例并获得一些结果。这些表每天增长 35k 行,因此在使用该工具一个月后,我注意到用于获取某些广告点击总和的查询开始变慢。
我在问我使用的查询是否可以加快如果我将它与连接一起使用以及如何。
这是我对每个广告的点击总和的查询(使用 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