V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ruandao
V2EX  ›  问与答

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

  •  
  •   ruandao · 2019-05-31 17:47:12 +08:00 · 1491 次点击
    这是一个创建于 1784 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每个应用各自一个 数据库吗? 如果是各自一个数据库, 那么根据 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 百万条记录, 现在数据库能支持怎样的写入性能?

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

    4 条回复    2019-05-31 20:01:40 +08:00
    mortonnex
        1
    mortonnex  
       2019-05-31 18:02:18 +08:00
    读取?
    条件查询
    ruandao
        2
    ruandao  
    OP
       2019-05-31 19:10:34 +08:00
    @mortonnex #1 读取的时候不是根据 id 进行读取吗? 那么要到对应的应用(每个应用自己一个数据库)上进行查询

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

    但是如果是共用一个数据库的话, 那么需要分库分表吧( 要不然单一数据库, 性能不高)
    xiaopc
        3
    xiaopc  
       2019-05-31 19:18:03 +08:00 via Android
    根据 workid 去对应的数据库读 啊
    ruandao
        4
    ruandao  
    OP
       2019-05-31 20:01:40 +08:00
    @xiaopc #3 那么读取的时候, 需要根据 workid 到对应 应用服务器吗? 这样是 一个副本一个单独服务器了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1199 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:13 · PVG 07:13 · LAX 16:13 · JFK 19:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.