首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php/mysql分类字段按日期查看计数器

php/mysql分类字段按日期查看计数器
EN

Stack Overflow用户
提问于 2011-11-17 23:33:02
回答 2查看 596关注 0票数 0

我正在建立一个广告分类网站,在那里我想存储每个广告的浏览量的计数,我希望能够在图表中显示在以后的日期,按日和月等。对于每个用户和他们的每个广告。我正在为如何最好地实现mysql数据库来存储每个广告的大量数据而苦苦挣扎。

我将为页面视图创建一个表,如下所示,它将为每个广告的每个视图存储一条记录,例如,如果advert (id 1)有200个视图,则该表将存储200条记录:

Advert_id (广告的唯一标识)

date_time (查看日期和时间)

ip_address (观看广告的人的唯一ip地址)

page_referrer (推荐人页面的url)

如上所述,我将创建的功能,为每个成员的网站,以查看他们的每个广告的视图统计图表,以便他们可以看到他们的广告有多少总浏览量,也有多少他们的广告每天有多少浏览量(在2个给定的日期之间),也有多少每月每个广告有多少浏览量。我将通过按date_time字段分组来完成此操作。

如果我的网站变得相当大,例如有40,000个广告,每个广告平均有3,000个页面浏览量,这意味着表中有1.2亿条记录。这个是不是太大了?生成图形的mysql查询会非常慢吗?

你认为上面的表和方法是存储这些广告视图统计数据的最好方法,还是有更好的方法来做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-17 23:39:10

除非你真的需要存储所有这些数据,否则在观看广告时增加计数可能会更好。因此,每个广告只有一行(或者甚至是广告行中的一列)。

另一种选择是将其保存到文本文件中,然后脱机处理它,但通常更好的做法是在获得数据时对其进行处理,并将其合并到应用程序流程中。

如果您确实需要保存所有这些数据,那么每周轮换一次日志表(在处理之后)可能会减少无限期地存储所有这些信息的开销。

票数 0
EN

Stack Overflow用户

发布于 2011-11-17 23:45:49

我的网站每天有50.000个访问者,我和你的表格是一样的。

表正在以200-500MB/天的速度增长,但我每天都能清理表。

最好的选择是制作第二个表,每天清点访客人数,将结果添加到第二个表中,并刷新第一个表。

第一个表示例:

  • advert_id
  • date & time
  • ip address
  • page referrer

第二个表格示例(用于图形):

  • advert_id
  • date
  • visitors
  • unique访问者

用于统计unqiue访问者的示例SQL查询:

代码语言:javascript
运行
复制
SELECT 
    advert_id,
    Count(DISTINCT ip_address), 
    SUBSTRING(Date,1,10) as Date 
FROM 
    adverts 
GROUP BY 
    advert_id, 
    Date

问题不在于性能(MySQL ISAM引擎相当智能和快速),问题在于存储如此庞大的数据。

90%的统计工具(甚至google analytics或webalyzer)每天只做一次图表,而不是实时的。

一个很好的想法是使用函数ip2long()将IP存储为INT

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8169818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档