如何管理网页浏览数据库

时间:2009-11-19 22:54:14

标签: php mysql statistics tracking archiving

我有兴趣在我的网站上跟踪用户的网页浏览量。由于流量正在快速扩张,我担心机器人等,我也希望能够实时使用跟踪数据来改变用户体验(因此,虽然我使用Google分析,但它不能用于此目的)

存储信息的最有效方法是什么?这是我目前的理论,请批评和/或提供更多想法:)

策略:收集ip,页面网址,浏览器/版本,时间戳,加载时来自客户端的引荐,并在MySQL中插入一行。根据时间或性能确定一些间隔,以“存档”表并删除行,或通过cron创建新行。

这稳定吗?

2 个答案:

答案 0 :(得分:2)

我不完全确定,但是用户表(可能通过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

(等...)

然后使用简单的MySQL(或您正在使用的任何数据库)查询来检索哪些用户查看了哪些页面。

主要的缺点是用户将具有不同的工作/家庭标识符(除非您将其登录),以及每个IP地址的多个用户,以及可能的每个cookie /会话(取决于用户的打开方式)分享他们的工作站/个人计算机。)

答案 1 :(得分:1)

听起来很合理。如果希望插入尽可能快,则应该使该表成为MYIASM并且没有任何索引。