ruandao
V2EX  ›  问与答

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

  •  
  •   ruandao · May 31, 2019 · 1868 views
    This topic created in 2540 days ago, the information mentioned may be changed or developed.

    每个应用各自一个 数据库吗? 如果是各自一个数据库, 那么根据 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 replies    2019-05-31 20:01:40 +08:00
    mortonnex
        1
    mortonnex  
       May 31, 2019
    读取?
    条件查询
    ruandao
        2
    ruandao  
    OP
       May 31, 2019
    @mortonnex #1 读取的时候不是根据 id 进行读取吗? 那么要到对应的应用(每个应用自己一个数据库)上进行查询

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

    但是如果是共用一个数据库的话, 那么需要分库分表吧( 要不然单一数据库, 性能不高)
    xiaopc
        3
    xiaopc  
       May 31, 2019 via Android
    根据 workid 去对应的数据库读 啊
    ruandao
        4
    ruandao  
    OP
       May 31, 2019
    @xiaopc #3 那么读取的时候, 需要根据 workid 到对应 应用服务器吗? 这样是 一个副本一个单独服务器了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3211 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 14:26 · PVG 22:26 · LAX 07:26 · JFK 10:26
    ♥ Do have faith in what you're doing.