我们在
MySQL数据库上运行一个自定义的OpenX广告服务器,大约可以获得.每天100万次点击.我们需要存储所有这些点击信息并根据它显示统计信息.
现在,所有点击信息每2天汇总一次,并删除特定的点击信息.但我们希望为我们的关联企业提供一项新功能,以便他们设置动态跟踪ID(TID),并基本上根据此跟踪他们的点击次数和转化次数.
因此,问题是我们的点击表每天至少会增加100万个条目,我们需要能够搜索此表并显示特定时间段内一个用户的所有点击次数,按TID分组我在上面提到过,或者通过TID搜索.
我看了一下MySQL分区,它似乎是一个很好的解决方案,但是,我不确定它是否仍能在巨大的数据库(可能是数十亿条目)上运行良好.
您认为这个问题的正确方法是什么?
编辑:
根据你的答案,我现在正在考虑一个混合的解决方案.
我们已经有一个“LIVE”表,当维护时聚合点击时,条目将从中删除,如下所示:
表:点击次数
viewer_id | …… | date_time | affiliate_id | …… | TID
(我跳过了此时不重要的列)
在维护时,我可以将所有内容移动到另一个看起来几乎相同的月表,例如表:clicks_2012_11,其中包含date_time,affiliate_id和tid的索引,并由affiliate_id分区.
所以现在,当一个联盟会员希望查看他过去2个月的统计数据时,我知道我必须查看表格:clicks_2012_10和表格:clicks_2012_11(我的时间范围限制为最多2个月).因为我有通过affiliate_id分区的表,所以只从2个表中搜索所需的分区,现在我可以列出过去2个月内有任何活动的所有TID.
您如何看待这种方法?有没有明显的问题?我是否因为没有坚实的理由而使事情复杂化?