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

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

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

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

如果只是查 key 的话,任何一个数据库都没有问题吧。如果是查 v ,还有变动的复杂逻辑,基本上没戏。
wweir
2016-07-08 19:58:49 +08:00
doukudb 不错,不过场景不对
Mirana
2016-07-08 20:03:47 +08:00
mysql 分表足够了
jason19659
2016-07-08 21:39:12 +08:00
学习。。。有没有相关的文章神马的
heraldboy
2016-07-08 23:02:27 +08:00
场景不清晰,如果没什么逻辑关系,数据量再大也是堆硬盘,不查询增删改采用分库分区等都可以秒杀。
strahe
2016-07-09 00:08:38 +08:00
试试 mongodb 吧

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

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

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

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

© 2021 V2EX