PHP 如何去处理大数据量的任务呢?

问题#

  1. 独立访客 (UV)
    1 天(00:00 - 24:00)之内,访问网站的不重复用户数(以浏览器 cookie 为依据),一天内同一访客多次访问网站只被计算 1 次。
  2. 新独立访客
    当日的独立访客中,历史上首次访问网站的访客为新独立访客。

方案一:通过 group 查询时间段内的 cookie(每小时查询一次),然后再继续通过这些 cookie 作为条件,再继续 group 今天的 cookie,就可以获取,可通过 mysql 直接实现,时间较长

方案二:通过分页查询累加存储到数组,通过数组进行匹配进新匹配计算,但是数据量一大就内存不足

有没有更好的办法来处理呢#

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

像这种访问日志建议走 MQ,用户访问时将访问数据写入 MQ,然后消费端对数据进行分析和存储。 对于这种数据量大的且不变的数据可以考虑采用 Clickhouse 这样的列存储数据库,性能比 MySQL 高几十上百倍。

4年前 评论
bestcyt

这种不是用 redis 来做吗?过滤重复存起来就行;然后可以维护一个所有访客的一个数据集当布隆过滤器;每日的访客去判断一下,不存在这个过滤器就是新访客

4年前 评论