Guid唯一性在不同的计算机上

本文关键字:计算机 唯一性 Guid | 更新日期: 2023-09-27 17:50:11

可能重复:
GUID在所有情况下都是唯一的吗?

在阅读了Guid上的所有帖子后,我仍然不清楚一件简单的事情:

不同机器生成的Guid也会保持其唯一性或不唯一性。

我读过单机上的guid唯一性,但我仍然不知道不同机器的唯一性

Guid唯一性在不同的计算机上

通常认为,新的随机GUID总是唯一的。从概率上讲,这不是真的,但生成重复的可能性很小,我们不需要关心它。

生成两个相同制导的几率为5316919883139663491615228241121400000 中的1

因此,如果你在100万台计算机上生成100万个Guid,生成重复的几率为:5316919883139663491615228 中的1

以10亿台计算机上的10亿个Guid为例,生成重复的几率为:5316911983139663491中有1个(相当于5.3万亿分之一(。

数字不言自明,你不会上当受骗。

如果你想知道我从哪里得到这些数字,GUID的值部分是122位。2^122是5.3169119831396634916152282411214 x 10^36

一些更疯狂的数字
如果每秒生成100万个Guid,则可能需要1684866464147580370470736年才能保证重复。

@viggity提到,一些guid的mac地址占用了48位,数字仍然惊人,因此丢失这些位的成本很高。以上述每秒200万个guid(在同一台计算机上(为例,仍然需要598584166年才能保证一次重复。那是6亿年。这比地球上存在的生命还要长。或者,如果你是一个年轻的地球创造者,那至少是地球寿命的6万倍。

GUID"实际上"是普遍唯一的。

GUID是一个128位整数(16字节(,可以在所有需要唯一标识符的计算机和网络中使用。这样的标识符被复制的概率非常低。

从MSDN

我记得在某个地方听说,如果你把IPV4地址空间(32位(想象成邮票的大小,那么IPV6(128位(就是我们太阳系的大小。生成一个欺骗是不会发生的。

此外,如果有什么不同的话,你更可能得到一台重复的同一台机器,而不是两台不同的机器,因为大多数Guid生成算法都会将你的计算机NIC MAC地址嵌入Guid中(它是48位(。尽管有些算法不嵌入MAC地址,只是纯粹随机的。请参阅:http://guid.us/

编辑:另一个有趣的量表示例地球的体积大约是10^27立方厘米。这意味着地球整个体积的每立方厘米可能有340000000吉德。这个数字大得惊人。

或者,地球表面的每一个正方形NANOmeter都可能有大约65万个指南。