我有一个大表,其中包含按多个维度细分的每小时统计数据。它现在足够大,我需要开始聚合数据以加快查询速度。该表看起来像:
customer INT
campaign INT
start_time TIMESTAMP
end_time TIMESTAMP
time_period ENUM(hour, day, week)
clicks INT
例如,我在想我可以在活动为空的表中插入一行,点击值将是该客户和时间段的所有点击的总和。同样,我可以将时间段设置为“天”,这将是当天所有小时的总和。
我确信这是一件相当普遍的事情,所以我想知道在 MySql 中实现这一目标的最佳方法是什么?我假设一个 INSERT INTO 与一个 SELECT 语句相结合(就像一个物化视图) - 但是由于新数据不断被添加到这个表中,我如何避免重新计算我之前计算的聚合数据?