在计数时更新mysql行

时间:2019-06-19 14:02:30

标签: php mysql sql

我有一个表,可以存储大量数据。该表存储了每个用户个人资料的每次展示,因此预计在几年内它将包含数十亿行。

说此表包含以下列: 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)之后开始下一次计数。

如果您有一个执行该想法的解决方案,或者您有一个对大型表更有效的想法,将不胜感激。

1 个答案:

答案 0 :(得分:0)

@KIKOSoftware提出的想法对我来说效果很好: 我将计数的印象数存储在一个夏日表中, 然后,在需要时,我检查日期时间范围,如果有新的印象,则代码会对它们进行计数,并将它们存储在夏季表格的新行中。