<分区>
Possible Duplicate:
Is a GUID unique 100% of the time?
看完Guid上的所有帖子后,我仍然不清楚一件简单的事情:
不同机器生成的Guids也保持或不保持其唯一性。
我读过单机guid的唯一性,但我仍然不知道不同机器的唯一性
<分区>
Possible Duplicate:
Is a GUID unique 100% of the time?
看完Guid上的所有帖子后,我仍然不清楚一件简单的事情:
不同机器生成的Guids也保持或不保持其唯一性。
我读过单机guid的唯一性,但我仍然不知道不同机器的唯一性
最佳答案
人们普遍认为新的随机 GUID 始终是唯一的。从概率上讲,这不是真的,但产生欺骗的可能性很小,我们不需要关心它。
生成两个相同 guid 的几率是 5,316,911,983,139,663,491,615,228,241,121,400,000 分之一
因此,如果您在 100 万台计算机上生成 100 万个 guid,则生成重复项的几率为:5,316,911,983,139,663,491,615,228 中有 1 个
在 10 亿台计算机上使用 10 亿个 guid,生成欺骗的几率为: 5,316,911,983,139,663,491 分之一(即 5.3 quintillion)。
数字不言自明,您不会上当受骗。
如果您想知道我从哪里得到这些数字,GUID 的值部分是 122 位。 2^122 是 5.3169119831396634916152282411214 x 10^36
一些更疯狂的数字......
如果每秒生成 100 万个 guid,则可能需要 168,486,464,147,580,370,470,736 年才能保证重复。
@viggity 提到一些 guid 有 48 位被 mac 地址占用,数字仍然惊人,因此丢失这些位的承受能力。以上面每秒 200 万个 guids 的例子(在同一台计算机上)为例,它仍然需要 598,584,166 年才能保证被欺骗。那是六亿年。这比地球上存在的生命还要长。或者,如果您是年轻的地球创造论者,那至少是地球生命周期的 6 万倍。
关于c# - 不同机器上的 Guid 唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074238/