文章流量统计,是否必须每次浏览都读写一次数据库?
程序员文章站
2024-01-25 21:14:34
...
比如一个新闻系统
文章表是news, 开个count栏记录流量?
想在文章中显示被浏览的次数
是否只在php中做成...每次访问
都在news中读出count栏的数值,然后+1
再写入?
这样会否对流量大点的时候做成负载太重?
是否也只能这样做?
我有使用到smarty模板引擎
除了做局部不cahac还有什么需要注意吗?
比如写成...:
$hits_now = $row["hits"]+1;
$pdo->exec("UPDATE `news` SET `hits`='$hits_now' WHERE `id` = '$id'");
这么简直的SQL就直接EXEC了吧?
文章表是news, 开个count栏记录流量?
想在文章中显示被浏览的次数
是否只在php中做成...每次访问
都在news中读出count栏的数值,然后+1
再写入?
这样会否对流量大点的时候做成负载太重?
是否也只能这样做?
我有使用到smarty模板引擎
除了做局部不cahac还有什么需要注意吗?
比如写成...:
$hits_now = $row["hits"]+1;
$pdo->exec("UPDATE `news` SET `hits`='$hits_now' WHERE `id` = '$id'");
这么简直的SQL就直接EXEC了吧?
回复讨论(解决方案)
1、只用数据库的话是需要每次做更新的(点击字段所在的表如果索引正常的话,每天浏览量在50万PV以下没压力的
2、语句注意过滤注入
可以将访问次数放在缓存中,例如 memcache 或者 redis 中之类。 统计开始的时候读取一次流量, 保存在缓存中,每次用户访问都将变量加一,到统计时间点的时候 再将其保存回数据库即可。。。 这样每次统计只需在最开始 和 最后两次读写数据库了。 一次读 一次写。。