在MySQL中,什么是计算展示次数的最有效方法

时间:2011-12-24 15:18:59

标签: php mysql

我将在每页显示一行行数,每次在页面上显示一行时,我希望它在行展示次数上添加1次“点击”。但似乎可能有一个更好的方法,而不是echo为每个列表做一个完整的mysql_query函数。有没有办法在检索时向查询中的所有行添加1?

2 个答案:

答案 0 :(得分:1)

我们使用db + cache的混合。这使我们能够非常快速地显示数据并保持持久性。我们在一个包含所有项目的每个唯一视图的表上插入一条记录,之后我们在memcache中为该特定行增加一个计数器。

后台进程(可能是sharded or not)每分钟处理这些行,并在使用 new 总计更新缓存的同时增加行中的视图,以防万一在持久数据和内存缓存之间是偏移

我们在这里得到什么?

  • 速度:在视图表中插入并忘记。增加缓存以快速显示视图
  • 持久性:当后台进程运行时,它会从数据库中获取数据并更新 db * AND * cache ,这样您的数据看起来总是一致的。

答案 1 :(得分:0)

从初始select命令获取所有唯一id,然后从PHP将它们存储在逗号分隔的字符串中并使用mysql的IN函数。类似的东西:

   UPDATE your_table SET impression_count = impression_count + 1 WHERE unique_id IN (yourlistofIDs)

只需1次查询即可更新所有行。