V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mamahaha
V2EX  ›  问与答

像统计文章浏览量这样的表(会产生大量行数,但字段却极少),有必要做分表吗?

  •  
  •   mamahaha · 2019-04-27 09:39:00 +08:00 · 2191 次点击
    这是一个创建于 2038 天前的主题,其中的信息可能已经有所发展或是发生改变。

    像这类表,一般 3,4 个字段就够了,而且每个字段的字符数也很少,但会产生大量行数。假如数据量超大时,如何对待它呢?比如几千万行的情况,这种表有必要分表吗?

    12 条回复    2019-04-27 14:16:02 +08:00
    ipwx
        1
    ipwx  
       2019-04-27 10:01:32 +08:00   ❤️ 1
    我不懂,统计浏览量的表难道不是一篇文章一条记录的嘛?

    如果你文章都有几千万了,你还用一个数据库?
    kukumao
        2
    kukumao  
       2019-04-27 10:09:39 +08:00 via Android   ❤️ 1
    我觉得不需要。又不是经常读。
    whileFalse
        3
    whileFalse  
       2019-04-27 11:11:04 +08:00   ❤️ 1
    浏览量为啥会有几千万行?
    longxboy
        4
    longxboy  
       2019-04-27 11:24:57 +08:00   ❤️ 1
    不超过 1 亿条的话不用
    GoLand
        5
    GoLand  
       2019-04-27 11:27:12 +08:00   ❤️ 1
    这种数难道不是 kv 存储好吗?还放关系数据库干啥?
    opengps
        6
    opengps  
       2019-04-27 11:31:18 +08:00   ❤️ 1
    不需要,这种表主要是查时间区间,重点考虑用时间列聚集索引,排除其他的查询

    跟我之前分享的超大密集写入表设计有点相似,只不过达不到需要表分区的地步
    [《 mysql,sqlserver 数据库单表数据过大的处理方式》]( https://www.opengps.cn/Blog/View.aspx?id=284)
    mamahaha
        7
    mamahaha  
    OP
       2019-04-27 12:56:23 +08:00   ❤️ 1
    @ipwx @whileFalse 需要记录文章 id、浏览文章的非重复 ip。点击一次生成一行,一个文章 id 对应有多少行就是被浏览了多少次,所以会产生很多行。如果单给一个字段做累加是没法区别重复点击的,不过我也不敢绝对肯定,也许你会有更好的办法吧。
    mamahaha
        8
    mamahaha  
    OP
       2019-04-27 13:10:29 +08:00
    @opengps 谢谢,“只增,不删,不改”,“只用于查询”,应用场景非常符合啊。是不是可以理解为按时间段进行了模拟分表。
    jugelizi
        9
    jugelizi  
       2019-04-27 13:20:10 +08:00   ❤️ 1
    才几千万行。。
    我都好几亿条的 mysql 的这种纯数字也是毫秒查
    dog
        10
    dog  
       2019-04-27 13:20:29 +08:00 via iPhone   ❤️ 1
    楼上那些,是不是没考虑到按时间查看浏览量…
    比如精确到每分钟某篇文章有多少浏览…
    这种情况楼主说的几千万行当然也是存在的,每一次流量都要记录下时间和客户端等信息,而不再是文章的一个字段了
    oott123
        11
    oott123  
       2019-04-27 14:15:35 +08:00 via Android   ❤️ 1
    按时间浏览存储的,可以试试时序数据库 time serial database
    区分 ip 统计总数的,可以试试布隆过滤器
    oott123
        12
    oott123  
       2019-04-27 14:16:02 +08:00 via Android   ❤️ 1
    是 time series database,拼错了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2714 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:41 · PVG 11:41 · LAX 19:41 · JFK 22:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.