PHP-网站来源统计数据库表设计

发布于 2017-08-18 22:22:35 字数 874 浏览 1242 评论 2

最近公司有个需求,就是统计用户从哪个地方跳转到我们网站的,我目前的实现是,在进入首页前获取到来源网址,然后写入数据库,表设计如下:
CREATE TABLE gao_referer_count (
id bigint(20) NOT NULL AUTO_INCREMENT, 自增长ID
referer_url varchar(80) NOT NULL, 来源网址
referer_path varchar(255) NOT NULL DEFAULT '', 请求路径
referer_query varchar(255) NOT NULL DEFAULT '', 请求参数
access_time datetime NOT NULL, 请求时间
access_ip varchar(80) NOT NULL, 请求IP
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=utf8;

基本上过1个多小时就写入了1W多条数据,因为本人对数据库表的设计和优化也只略懂皮毛,所以表也设计的比较耿直和简单,因为怕时间长了会出现性能问题,所以在这里请教各位有什么其它设计思路和优化方案

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2017-09-06 18:35:38

统计表和业务表的设计,其实有很多不同, 最大的不同就是业务的查询相对刻板,简单。 数据类型也比较好确定。 但是统计表查询就复杂了很多,而且变化性非常强。
针对这个表,如果你只要统计url相关信息,我觉得是设计上没有太大的偏差,我赞同你的设计。 但是如果你要把“用户从哪进入”和“用户后续行为”看成一个完整流程,并分析不同渠道,不同转化率或不同的行为特征的话。那么这个表显然是单薄了很多,你至少需要思考uid的关联问题。
这个表本身也许就是最大的问题。一小时1w多条还好,数据量和增长速度都很小, 使用分表技巧和索引技巧可以解决很多后续查询问题。 但是就这个需求而言, 本身就应该是日志级的处理方式。 而是不是关系型数据库的处理方式。 把这种类似日志的原始数据存在mysql数据库里面,在大并发的前提下,也许本身就是最大的问题

清晨说ぺ晚安 2017-09-01 18:04:39

这个并非是关系型的数据,建议采用nosql数据库存储,譬如mongoDb之类的,一般这个随着访问量递增的数据一般是不会存放在这种关系型数据库的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文