我有兴趣在我的网站上跟踪用户的综合浏览量。由于流量增长非常快,我担心机器人等,我也希望能够实时使用跟踪数据来改变用户体验(所以,虽然我确实使用谷歌分析,但它不能达到这个目的) .
存储我的信息的最有效方式是什么?这是我目前的理论,请批评和/或提供更多想法:)
策略:在加载时收集 ip、页面 url、浏览器/版本、时间戳、来自客户端的引用并将一行插入 MySQL。根据时间或性能确定某个时间间隔以“归档”表并删除行或通过 cron 创建一个新行。
这稳定吗?
我有兴趣在我的网站上跟踪用户的综合浏览量。由于流量增长非常快,我担心机器人等,我也希望能够实时使用跟踪数据来改变用户体验(所以,虽然我确实使用谷歌分析,但它不能达到这个目的) .
存储我的信息的最有效方式是什么?这是我目前的理论,请批评和/或提供更多想法:)
策略:在加载时收集 ip、页面 url、浏览器/版本、时间戳、来自客户端的引用并将一行插入 MySQL。根据时间或性能确定某个时间间隔以“归档”表并删除行或通过 cron 创建一个新行。
这稳定吗?
我不完全确定,但是一个用户表(可能通过 cookie 或会话分配一个用户 ID),你的页面表(这可能是也可能不是实际的,取决于它们是如何生成的),和一个跟踪表来显示每个用户 ID 所查看的页面(通过一些唯一的页面 ID 标识符)?
Pages:
page_id | page
01 | homepage
02 | site map
03 | about us
users
user_id | user_ip_or_cookie_identifier
01 | 127.0.0.1
02 | 192.168.0.2
tracking
user_id | page_id
01 | 01
01 | 03
02 | 01
01 | 02
(ETC...)
然后使用简单的 MySQL(或您正在使用的任何数据库)查询来检索哪个用户查看了哪些页面。
主要弱点是用户将具有与工作/家庭不同的标识符(除非您登录),并且每个 ip 地址有多个用户,可能还有每个 cookie/会话(取决于用户对共享工作站的开放程度) /件)。
听起来很合理。如果您希望插入速度尽可能快,您应该将该表设为 MYIASM 并且没有任何索引。