可指定任意时间段查询网站流量统计数据的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

可指定任意时间段查询网站流量统计数据的问题

落地花开啦 2016-02-29 18:25:35 2303

简单需求:最近在做一个数据统计的项目,要求要统计的最小单位是分钟,类似统计网站的PV这样子,后台要求能看到某一天的某个小时或几个小时内每分钟的量的走势...等等,大家做过统计应该是知道的,我现在的设计是利用redis分布顶前端的访问记录存储,然后通过配合mysql持久记录历史数据,现在我的瓶颈在于mysql的设计上
大致的表设计是这样的:表名:test_pv 字段:id day hour minute1 ... minutes60
通过day去利用mysql分区为365个(这里大家建议一下是利用Range,list,hash中的那个比较好?)
还有就是此表的索引和分区上需要注意什么,就是希望高手给与设计上一些实际性的建议,网上的资料我已经通遍了,就是想大家给出一些指正和设计上的合理性的建议

存储 前端开发 NoSQL 关系型数据库 MySQL BI Redis 索引
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:50:46

    这是我一些个人想法,不知道是否合理。选择用哪一个,主要要结合你的统计的需要。

    1. 不一定要分为365个,分成这么多分区,访问时去扫描的分区就多了,那会增加IO开销。
    2. 如果经常进行环比,比如连续几天,或者连续的某两天进行对比,那range,list好一些,因为相你的分区相对连续,那可以减少IO.
    3. 如果是经常进行同比,比如这个月的某天与上个月的某天,那可以用hash,函数可以自己定义,可以将可能同时访问的数据放在同一分区中,减少IO.
    4. 另外,不知道统计显示是用什么来做的?...目前我也在做一个类似的监控系统,我用rrd4j 做显示。
      另外,用explain将你最常用的查寻打印出来看看,如果每个查询要涉及 的分区 少的话,那分区 有优势,否则就慢了
    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题