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

问题

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

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

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

3年前 评论
bestcyt

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

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!