我不知道是否允许这样做,但我需要澄清一个问题的解决方案。
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
}
任何帮助?
答案 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,则数据库将根据可能的值(采样率)进行更新。
这只是一种用于节省资源的抽样技术。这是用于大型网站的常用技术。
如果您正在运行较小的操作,则只需在每次查看页面时更新数据库,与使用抽样方法相反。