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

2019-04-27 09:39:00 +08:00
 mamahaha

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

2075 次点击
所在节点    问与答
12 条回复
ipwx
2019-04-27 10:01:32 +08:00
我不懂,统计浏览量的表难道不是一篇文章一条记录的嘛?

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

跟我之前分享的超大密集写入表设计有点相似,只不过达不到需要表分区的地步
[《 mysql,sqlserver 数据库单表数据过大的处理方式》]( https://www.opengps.cn/Blog/View.aspx?id=284)
mamahaha
2019-04-27 12:56:23 +08:00
@ipwx @whileFalse 需要记录文章 id、浏览文章的非重复 ip。点击一次生成一行,一个文章 id 对应有多少行就是被浏览了多少次,所以会产生很多行。如果单给一个字段做累加是没法区别重复点击的,不过我也不敢绝对肯定,也许你会有更好的办法吧。
mamahaha
2019-04-27 13:10:29 +08:00
@opengps 谢谢,“只增,不删,不改”,“只用于查询”,应用场景非常符合啊。是不是可以理解为按时间段进行了模拟分表。
jugelizi
2019-04-27 13:20:10 +08:00
才几千万行。。
我都好几亿条的 mysql 的这种纯数字也是毫秒查
dog
2019-04-27 13:20:29 +08:00
楼上那些,是不是没考虑到按时间查看浏览量…
比如精确到每分钟某篇文章有多少浏览…
这种情况楼主说的几千万行当然也是存在的,每一次流量都要记录下时间和客户端等信息,而不再是文章的一个字段了
oott123
2019-04-27 14:15:35 +08:00
按时间浏览存储的,可以试试时序数据库 time serial database
区分 ip 统计总数的,可以试试布隆过滤器
oott123
2019-04-27 14:16:02 +08:00
是 time series database,拼错了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/559139

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX