加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 收集大型访问统计信息的方法

发布时间:2020-12-13 21:42:24 所属栏目:PHP教程 来源:网络整理
导读:我有网站,用户可以发布他们的文章,我想提供有关每篇文章访问和推荐人的完整统计数据.这里的实现看起来很简单,只需为每次访问存储数据库记录,然后使用聚合函数绘制图形等等. 问题是,文章在24小时内收到大约30万次观看,而在一个月内,统计表将获得大约900万条记
我有网站,用户可以发布他们的文章,我想提供有关每篇文章访问和推荐人的完整统计数据.这里的实现看起来很简单,只需为每次访问存储数据库记录,然后使用聚合函数绘制图形等等.

问题是,文章在24小时内收到大约30万次观看,而在一个月内,统计表将获得大约900万条记录,这是一个非常大的数字,因为我的服务器功能不是很强大.

这种任务有解决方案吗?是否存在允许存储长期统计数据而不会丢失准确性的算法或缓存机制?

附:这是我原来的统计表:

visitid INT
articleid INT
ip INT
datetime DATETIME

解决方法

假设有一个自制的使用跟踪解决方案(与其他响应中建议的GA相反),您可能正在寻找两个数据库设置:

>一个“实时”数据库,可以捕获vist事件.
>“离线”数据库,其中定期收集来自“实时”数据库的数据,以便[可选地]聚合和索引.

此设置的目的主要是由操作问题驱动.对于快速插入,“实时”数据库没有编入索引(或最低限度编入索引),并且当流量较轻时,通常每晚都会定期清空,因为“离线”数据库会收集当天收集的事件.

两个数据库可以具有完全相同的模式,或者“离线”数据库可以引入各种形式的聚合.应用于脱机数据库的特定聚合详细信息可能会有很大差异,具体取决于保持数据库大小的检查和依赖于被认为重要的数据(大多数统计/聚合函数引入一些信息丢失,并且需要确定哪些丢失是可以接受的,但不是.

由于使用日志值的“半衰期”特性,即细节的相对价值随时间衰减,一个共同的策略是在多个层中聚合信息,从而在最后一天(例如X天)收集的数据大部分仍然存在未触及的,在X和Y天之间收集的数据被部分聚合,最后,比Y天更早的数据仅保留最显着的信息(例如,命中数).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读