生成 ID 用 snowflake 算法, 然后读取记录呢?

2019-05-31 17:47:12 +08:00
 ruandao

每个应用各自一个 数据库吗? 如果是各自一个数据库, 那么根据 id 读取记录的时候, 要所有数据库都去读? (或者说根据 workid 去对应的数据库读?)

还是他们共享 同一个数据库? 如果是共享数据库的化, 那么写入瓶颈依旧是一个数据库吧? 那么一个数据库, 支持多少写入?

snowflake 看里面的

39 bits for time in units of 10 msec
 8 bits for a sequence number
16 bits for a machine id

就是 每个应用支持 2^24 条 id 生成, 那么 16 百万条记录, 现在数据库能支持怎样的写入性能?

利用数据库中间件, 自动到对应的分库分表的数据库去读取?

1534 次点击
所在节点    问与答
4 条回复
mortonnex
2019-05-31 18:02:18 +08:00
读取?
条件查询
ruandao
2019-05-31 19:10:34 +08:00
@mortonnex #1 读取的时候不是根据 id 进行读取吗? 那么要到对应的应用(每个应用自己一个数据库)上进行查询

还是 任意应用都可以查询 (共用一个数据库)

但是如果是共用一个数据库的话, 那么需要分库分表吧( 要不然单一数据库, 性能不高)
xiaopc
2019-05-31 19:18:03 +08:00
根据 workid 去对应的数据库读 啊
ruandao
2019-05-31 20:01:40 +08:00
@xiaopc #3 那么读取的时候, 需要根据 workid 到对应 应用服务器吗? 这样是 一个副本一个单独服务器了?

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

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

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

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

© 2021 V2EX