我有一个表,可以存储大量数据。该表存储了每个用户个人资料的每次展示,因此预计在几年内它将包含数十亿行。
说此表包含以下列: id,user_id,已计数
我们需要不时计算每个用户的印象,而不必重新计算以前计算过的行数。
我有以下想法,但我不知道如何实现。 这个想法取决于运行以下sql:
SELECT COUNT(id) FROM table where user_id =$user_id and counted !=1
GROUP BY user_id
注意:(计数)列的默认值为(0)。
所需要的是,查询将使用整数(1)更新所有(计数的)列(在所有被计数的行中)。 否则,如果我们可以获取受查询影响的最后一个(id),则可以这样做,然后我们可以在该(id)之后开始下一次计数。
如果您有一个执行该想法的解决方案,或者您有一个对大型表更有效的想法,将不胜感激。
答案 0 :(得分:0)
@KIKOSoftware提出的想法对我来说效果很好: 我将计数的印象数存储在一个夏日表中, 然后,在需要时,我检查日期时间范围,如果有新的印象,则代码会对它们进行计数,并将它们存储在夏季表格的新行中。