像这类表,一般 3,4 个字段就够了,而且每个字段的字符数也很少,但会产生大量行数。假如数据量超大时,如何对待它呢?比如几千万行的情况,这种表有必要分表吗?
1
ipwx 2019-04-27 10:01:32 +08:00 1
我不懂,统计浏览量的表难道不是一篇文章一条记录的嘛?
如果你文章都有几千万了,你还用一个数据库? |
2
kukumao 2019-04-27 10:09:39 +08:00 via Android 1
我觉得不需要。又不是经常读。
|
3
whileFalse 2019-04-27 11:11:04 +08:00 1
浏览量为啥会有几千万行?
|
4
longxboy 2019-04-27 11:24:57 +08:00 1
不超过 1 亿条的话不用
|
5
GoLand 2019-04-27 11:27:12 +08:00 1
这种数难道不是 kv 存储好吗?还放关系数据库干啥?
|
6
opengps 2019-04-27 11:31:18 +08:00 1
不需要,这种表主要是查时间区间,重点考虑用时间列聚集索引,排除其他的查询
跟我之前分享的超大密集写入表设计有点相似,只不过达不到需要表分区的地步 [《 mysql,sqlserver 数据库单表数据过大的处理方式》]( https://www.opengps.cn/Blog/View.aspx?id=284) |
7
mamahaha OP @ipwx @whileFalse 需要记录文章 id、浏览文章的非重复 ip。点击一次生成一行,一个文章 id 对应有多少行就是被浏览了多少次,所以会产生很多行。如果单给一个字段做累加是没法区别重复点击的,不过我也不敢绝对肯定,也许你会有更好的办法吧。
|
8
mamahaha OP @opengps 谢谢,“只增,不删,不改”,“只用于查询”,应用场景非常符合啊。是不是可以理解为按时间段进行了模拟分表。
|
9
jugelizi 2019-04-27 13:20:10 +08:00 1
才几千万行。。
我都好几亿条的 mysql 的这种纯数字也是毫秒查 |
10
dog 2019-04-27 13:20:29 +08:00 via iPhone 1
楼上那些,是不是没考虑到按时间查看浏览量…
比如精确到每分钟某篇文章有多少浏览… 这种情况楼主说的几千万行当然也是存在的,每一次流量都要记录下时间和客户端等信息,而不再是文章的一个字段了 |
11
oott123 2019-04-27 14:15:35 +08:00 via Android 1
按时间浏览存储的,可以试试时序数据库 time serial database
区分 ip 统计总数的,可以试试布隆过滤器 |
12
oott123 2019-04-27 14:16:02 +08:00 via Android 1
是 time series database,拼错了
|