我将在每页显示一行行数,每次在页面上显示一行时,我希望它在行展示次数上添加1次“点击”。但似乎可能有一个更好的方法,而不是echo为每个列表做一个完整的mysql_query函数。有没有办法在检索时向查询中的所有行添加1?
答案 0 :(得分:1)
我们使用db + cache的混合。这使我们能够非常快速地显示数据并保持持久性。我们在一个包含所有项目的每个唯一视图的表上插入一条记录,之后我们在memcache中为该特定行增加一个计数器。
后台进程(可能是sharded or not)每分钟处理这些行,并在使用 new 总计更新缓存的同时增加行中的视图,以防万一在持久数据和内存缓存之间是偏移。
我们在这里得到什么?
答案 1 :(得分:0)
从初始select命令获取所有唯一id,然后从PHP将它们存储在逗号分隔的字符串中并使用mysql的IN函数。类似的东西:
UPDATE your_table SET impression_count = impression_count + 1 WHERE unique_id IN (yourlistofIDs)
只需1次查询即可更新所有行。