0

我面临挑战,我需要您的意见,让我解释一下:

我有一个包含大约 300 000 个用户的数据库,它们都有一个个人资料页面,我想存储每周(或每天?)访问他们个人资料的访问者数量以用于报告目的(图表可以在他们的管理页面)。

我正在考虑在一个专用表(我们称之为“stat”)中这样做,其组织如下:

  • id / 整数(用户的 id -- 唯一的)
  • current_ip / text(本期访问者ip的序列化数组)
  • 统计/文本(每个周期的序列化统计数组)

我正在考虑配置文件页面上的 AJAX 请求,该请求将仅过滤非机器人用户,检查 'current_ip' 表中是否存在 ip(带有 LIKE 请求),如果它不存在,我将取消序列化 ' current_ip´,推送新访问者的ip,序列化ip并更新表。

在每个时期结束时(所以每周或每天)我正在考虑一个 cron 任务计算 'current_ip' 上的 ip 数量,将那个数字(带有日期)推送到 'statistic' 值中(使用与之前解释的方法相同),然后删除“curent_ip”值,使其在下一个时期为空。

顺便说一句,我在带有 SSD 和 16g RAM 的 ubuntu 12.04LTS 专用服务器中使用 php5 和 PostgreSQL (9.1) 和 i5 (4 x 3.2 Ghz)。

这是最好、最简单或最快的方法吗?我都错了吗?!我应该每个周期使用 1 行而不是使用序列化数组来存储历史值吗?!

欢迎任何建议=)

干杯

杰弗里

4

1 回答 1

0

使用 HBase 计数器而不是 postgres。为此目的,它更有效。

于 2013-07-18T14:37:06.073 回答