每次使用php查看帖子时更新帖子视图

时间:2011-05-14 23:22:26

标签: php mysql sql

我不知道是否允许这样做,但我需要澄清一个问题的解决方案。

What is the best way to count page views in PHP/MySQL?

我有确切的问题。我只是不知道解决方案有什么意义,这是解决方案:

$sample_rate = 100;
if(mt_rand(1,$sample_rate) == 1) {
    $query = mysql_query(" UPDATE posts 
                              SET views = views + {$sample_rate} 
                            WHERE id = '{$id}' ");
    // execute query, etc
}

任何帮助?

2 个答案:

答案 0 :(得分:3)

这里mt_rand()生成1到100之间的随机数,因此该数字为1的概率为1/100。 如果生成1,我们将视图的值增加100。 因此,每个视图的数据库有效增加           =(增加视图的概率)*(数据库增加)           =(1/100)* 100           = 1

因此,从长远来看,每个视图的数据库值都会增加1。

这是在后期和速度的准确性之间的踩踏。因为MySQL查询比PHP rand函数调用更加广泛。

答案 1 :(得分:1)

对于查看页面的每个用户,将生成1到100之间的随机数($ sample_rate)。如果数字等于1,则数据库将根据可能的值(采样率)进行更新。

这只是一种用于节省资源的抽样技术。这是用于大型网站的常用技术。

如果您正在运行较小的操作,则只需在每次查看页面时更新数据库,与使用抽样方法相反。