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

2016 年 7 月 8 日
 xingwing

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

13725 次点击
所在节点    程序员
43 条回复
zhicheng
2016 年 7 月 8 日
你这个数据的量级不关键,关键的是你有多少增删改查。。。
realpg
2016 年 7 月 8 日
原始数据都是 kv 数据的 任何一个 nosql 轻松搞定,搞不懂你们这种环境还让人上 RDS 的想什么……
甚至不需要负载用的统一逻辑集群(当然保证可用性的为目的的必不可少),前置一个 hash 进行分库就好了,在逻辑层进行一个基本的 hash 操作 确认该 key 的存储节点就完事
fin
2016 年 7 月 8 日
@xingwing 那一条记录占空间不大啊, 10 多亿数据 100G 内存应该够了吧
fin
2016 年 7 月 8 日
@fin 如果 value 字符的取值范围有限的话,还能存得更紧凑呢。
hst001
2016 年 7 月 8 日
对于这种简单的 KV 存储很多 NOSQL 都没什么问题,在这里问还不如直接上机器测试。。
RisingV
2016 年 7 月 8 日
1.可以考虑下 aws 的 DynamoDB , amazon 主站背后也是这个。根据吞吐量收费, qps 高价格比较贵。
2.另外推荐 aerospike ,基于 SSD 和 RAM 的混合存储,可以投入比 redis 更少的节点,支持表结构的数据。做程序化广告交易的时候用过,非常 impressive 。
moult
2016 年 7 月 8 日
说实在的,我们 Session 就是用 MySQL 存储的。一亿左右数据行,读写挺频繁的,效率也不低啊。目前就硬盘出现瓶颈影响查询效率。
crazykuma
2016 年 7 月 8 日
mysql
CrowQu
2016 年 7 月 8 日
就用 MySQL 就可以啊,散列成 100 张表,一个简单的 Hash 算法就可以,又不做统计计算只是直接命中指定 K 值然后做相应操作,顶多如果并发过高前置个缓存服务器缓冲一下就可以……
iyaozhen
2016 年 7 月 8 日
redis 集群呀, hashmap 数据结构,刚好契合你的需求,然后按照 key 分库。
strwei
2016 年 7 月 8 日
我的 40G 的磁力链 mysql+sphinx 2 分钟索引完,应该有上亿数据了吧
newghost
2016 年 7 月 8 日
redis
ytmsdy
2016 年 7 月 8 日
@xingwing 要看你自己熟悉那个,目前的流行的 nosql ,你这个数据量跑起来一般上来说都不会有太大的瓶颈的。最大的问题是你后期的开发,维护,调优。选一个自己最顺手的吧。
fivesmallq
2016 年 7 月 8 日
可以试试 mongodb ,有集群。
deangl
2016 年 7 月 8 日
查是只查 key 还是也要查 v? 查 v 的话有没有总变化的复杂逻辑?

如果只是查 key 的话,任何一个数据库都没有问题吧。如果是查 v ,还有变动的复杂逻辑,基本上没戏。
wweir
2016 年 7 月 8 日
doukudb 不错,不过场景不对
Mirana
2016 年 7 月 8 日
mysql 分表足够了
jason19659
2016 年 7 月 8 日
学习。。。有没有相关的文章神马的
heraldboy
2016 年 7 月 8 日
场景不清晰,如果没什么逻辑关系,数据量再大也是堆硬盘,不查询增删改采用分库分区等都可以秒杀。
strahe
2016 年 7 月 9 日
试试 mongodb 吧

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

https://study.congcong.us/t/291049

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

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

© 2021 V2EX