web-stats表的数据库字段

时间:2011-08-07 21:11:16

标签: mysql database database-schema

我需要建议我应该为记录访问者统计信息的脚本创建哪些数据库字段。

到目前为止我已经

ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
os varchar(10) default NULL,
time datetime NOT NULL default '0000-00-00 00:00:00',
ip varchar(40) default NULL,
host varchar(150) default NULL,
browser varchar(50) default NULL,
os varchar(20) default NULL,
referrer text,
search text,
language varchar(5) default NULL,
screenres varchar(15) default NULL,
PRIMARY KEY (ID),
KEY time (time)

基本上我想为每次访问记录尽可能多的数据,但同时保持表访问速度快,因为它会有很多记录......

您认为我应该将os +浏览器以原始格式(值$_SERVER['HTTP_USER_AGENT'])存储到单个字段中,并确定输出中的操作系统和浏览器吗?

2 个答案:

答案 0 :(得分:0)

在这里的任何人都可以给你一个更明确的答案之前,还有很多东西需要回答。

  1. 这一切将用于什么?

  2. 这会记录每个访问过的网页还是记录访问者的初始“目标网页”?

  3. 此外,是的,您可以将HTTP_USER_AGENT存储在一个字段中并在输出上处理(如果需要),您是否要记录用户在页面上停留多长时间以查看是否存在错误或是否存在错误正在读它。从那里你可以看看他们是否点击了你网站上的至少一个其他链接。

    至于存储的速度,这很大程度上取决于你在一段时间内期望的访问者数量,一旦你有了这样的数字,你就可以看到模拟很多人访问你的网站,同时看到多长时间你需要一个瓶颈。

答案 1 :(得分:0)

在我看来“保持(...)快速访问”而单词“table”不适合一个句子。简单来说,因为与任何专用日志记录方法相比,对数据库的日志访问总是很慢。

最佳方式 - 使用脚本引擎的本机日志记录,例如syslog。

我猜你正在使用PHP,所以只需fopen()flock()fwrite()调用就可以轻松实现最佳效果。然后 - 您可以简单地记录关于访问者的几乎所有内容:cookie,get,post,session,整个服务器阵列(其中只包含referrer或ip等字段)。记录脚本执行时间和脚本错误(如果有的话)也很有用。

至于我,我使用PHP Log2Files Advanced Logger,它以文本或二进制形式记录 - 这是真正最快的解决方案:)