gpt4 book ai didi

database - 确保在多台机器上跨表生成唯一的 key

转载 作者:数据小太阳 更新时间:2023-10-29 03:08:40 26 4
gpt4 key购买 nike

我想使用这个 Go 包 https://github.com/bwmarrin/snowflake为我在 Postgresql 中的表生成主 int64 键。如果我的应用程序服务器至少在两台机器上运行,我该如何防止生成重复的 key ?

最佳答案

所以 snowflake 提供了 63 位整数存储在一个 int64 中。根据文档,您可以每毫秒为每个节点 ID 生成 4096 个唯一 ID。让我们采用默认实现。即每毫秒 4096 * 1023 = 40961023 个 ID,如果您在一秒钟内计算,您可以在多个节点上生成数十亿个唯一 ID,并且很少会发生冲突。

所以我认为如果您在服务器的 env 变量中传递一个节点 ID 并基于它生成 ID,您应该是安全的。

它还有助于根据实体或域向 id 添加一些前缀,以便您获得更多的熵,从而减少冲突甚至更少。

关于database - 确保在多台机器上跨表生成唯一的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56468686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com