上亿数据增删改查,用什么数据库合适?

2016-07-08 08:56:18 +08:00
 xingwing

需求是这样的,数据库里存的都是 kv 数据, k 是 ID , v 是多个值, k 的数量巨大,亿级或十亿级(比如中国人口数),如何能够快速(毫秒级)增删改查数据库的数据? cassandra 集群可以吗?

13009 次点击
所在节点    程序员
43 条回复
owt5008137
2016-07-08 09:10:38 +08:00
具体还是要看应用吧,要速度快的话 redis cluster 呗
wujunze
2016-07-08 09:16:24 +08:00
oracel
ytmsdy
2016-07-08 09:20:28 +08:00
是否涉及到数据之间的逻辑运算?如果设计逻辑运算,建议使用 oracle , mysql 这一类传统数据库,如果不涉及,仅仅是增删改查,那就用 no-sql 这一类数据库吧
xingwing
2016-07-08 09:21:53 +08:00
@ytmsdy 不涉及,能推荐一款 nosql 吗, cassandra 行吗?我看 360 在用
elgoog1970
2016-07-08 09:22:03 +08:00
m
xi4oh4o
2016-07-08 09:31:03 +08:00
leveldb
rubyvector
2016-07-08 09:34:36 +08:00
传统数据库必须加缓存,或者直接上 NOSQL
yannxia
2016-07-08 09:36:43 +08:00
分个库不就好了···把上亿的数据放在一起都是不和谐的
hiro0729
2016-07-08 09:39:59 +08:00
用 HBase 呀,它最适合这种结构不复杂的数据了,但是对 key 的设计有一定要求
tjxjj
2016-07-08 09:40:41 +08:00
oracle ,分个区就行了,轻松搞定, 10 多个 y 不是个事儿
owt5008137
2016-07-08 09:46:38 +08:00
@hiro0729 hbase 延迟很高吧,毫秒级似乎比较困难
justfly
2016-07-08 09:50:00 +08:00
写不大的话 分表就好 256 表 按 key 哈希 每表 500W ,上面加个 LRU 的 memcache 就好
xingwing
2016-07-08 09:54:17 +08:00
@justfly 单点问题咋解决?
raptor
2016-07-08 09:56:07 +08:00
看有多少钱了,有钱堆硬件的话,全部内存查询就 OK 啦。
nine
2016-07-08 10:04:12 +08:00
6 亿数据表示用 PostgreSQL 很轻松啊。
fin
2016-07-08 10:05:28 +08:00
v 是什么样的值呢
xingwing
2016-07-08 10:17:10 +08:00
@fin 用户的一些路由信息,比如:用户长连接的服务器地址等
justfly
2016-07-08 10:17:36 +08:00
@xingwing HA 要求高的话 加多套数据库配合 Keepalived 如果在有缓存情况下 依然需要多库负载均衡 可以多从库。

ps: 纯内存方案,可以用 codis 集群。
ladyv2
2016-07-08 10:21:39 +08:00
用 memsql?
loading
2016-07-08 10:29:21 +08:00
分库集群,哪个数据库都行。
如果一台机器…就不是技术的问题了,是这个方案身有问题!

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

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

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

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

© 2021 V2EX