栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

今天流行,本周,本月

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

今天流行,本周,本月

这实际上是一个常见的问题,即如何有效地对数据进行分组并保留所有必要的信息。

首先:您是否尝试过自己的方式?您真的缺乏存储空间吗?您的解决方案似乎很合理。

我会怎么做

我假设您正在使用数据库来保存数据。

我将创建两个单独的表,

hourly
一个用于
daily
统计,一个用于统计。每篇文章在该数据库中将有24行,每小时一行。这将用于
hourly
统计数据。要更新特定行,您只需知道小时(0-23)和entry_id。
UPDATEcount=count+1 WHERe hour=11 AND entry_id = 18164;

entry_id foreign key | hour integer | count integer---------------------+--------------+--------------1         | 0 | 1231         | 2 | 1712...

当前的每日统计信息将在午夜左右(或在应用执行最少操作时)进行计算或按需求和。无论哪种方式,每天都必须对所有小时数据进行汇总,并且必须将其插入

daily
统计表中。

entry_id foreign key | day date   | count integer---------------------+------------+--------------1         | 2013-07-03 | 541971         | 2013-07-04 | 66123...

超过31(30/29/28)天的每个条目都应删除。是否需要总统计或年度统计

优点

  • 您保留的数据少于完整的每小时统计数据:24 + 31
  • 如果在entry_id和hour上建立索引,则小时表上的总和应该很快
  • 比解决方案中使用的内存更少

缺点

  • 每日更新统计信息所需的其他脚本/触发器/作业
  • 实施它比解决方案需要更多的工作


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383055.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号