c# - 不同机器上的 Guid 唯一性

标签 c# sql-server programming-languages operating-system 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/

相关文章:

c# - 我如何在同一个程序/应用程序中重新打开 WPF 窗口?

c# - 低资源、有针对性和全屏捕获,为什么选择 C#?

c# - 如何练习像C#这样的语言?

python - 使用 Pymssql 将具有 Null 值的记录插入 SQL Server 时出错

programming-languages - 在 C# 中避免多个 Ifs - 最佳实践

c# - ListBlobs 不列出已删除的 blob

c# - Selenium 不根据名称输入字符串?

c# - Linq 从嵌套元素加入和投影

java - 让 JTDS 驱动程序接受 sendStringParametersAsUnicode=false 的问题?

sql - 何时使用 GROUPING SETS、CUBE 和 ROLLUP