首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于UuidCreateSequential / NewSequentialID的碰撞奇数

基于UuidCreateSequential / NewSequentialID的碰撞奇数
EN

Stack Overflow用户
提问于 2014-07-22 22:02:18
回答 1查看 667关注 0票数 4

当使用UuidCreateSequential或它的包装器NewSequentialID时,碰撞的几率有多大?我对顺序guids最具体的发现是“比随机guids更有可能”。

比较一下随机的guids,第4版--那里有大量有趣的统计数据:

  • 70万亿有0.0000000004%的机会发生碰撞.与每年被陨石撞击的几率相同(维基)
  • 每年产生100万guids的10亿个人计算机在7万年后有很大的碰撞几率(理柏,盖兹第3部分)
  • 2,60万,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,

但亲爱的老顺序鬼怎么办?他有趣的统计数字呢?如果相关,假设SQL的现代版本--比如2012/2014和windows 2008或2012。

EN

回答 1

Stack Overflow用户

发布于 2014-07-23 03:17:04

除非您正在做一些愚蠢的事情,比如在服务器中没有网卡(或显式设置mac地址和复制macaddr),否则您将不会得到副本。如果您没有网卡,guids对于该机器将是唯一的。

仔细阅读ms文档页,它说,

“使用NEWSEQUENTIALID()生成的每个GUID在该计算机上是唯一的。使用NEWSEQUENTIALID()生成的GUID仅在源计算机有网卡的情况下在多台计算机上是唯一的。”

你必须读一点字里行间的文字,但如果你不做那些愚蠢的事情,它们真的是独一无二的。

补充评论

有一个明显的警告,MS文档可能是错误的。但要证明这一点需要很长的时间,如果你不得不通过复制来反驳的话。完全有可能ms不使用生成的现代guid,并且可能正在公开底层的mac地址。我似乎把源代码的代码放错了地方,无法确定地检查。:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24898641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档