当使用UuidCreateSequential或它的包装器NewSequentialID时,碰撞的几率有多大?我对顺序guids最具体的发现是“比随机guids更有可能”。
比较一下随机的guids,第4版--那里有大量有趣的统计数据:
但亲爱的老顺序鬼怎么办?他有趣的统计数字呢?如果相关,假设SQL的现代版本--比如2012/2014和windows 2008或2012。
发布于 2014-07-23 03:17:04
除非您正在做一些愚蠢的事情,比如在服务器中没有网卡(或显式设置mac地址和复制macaddr),否则您将不会得到副本。如果您没有网卡,guids对于该机器将是唯一的。
仔细阅读ms文档页,它说,
“使用NEWSEQUENTIALID()生成的每个GUID在该计算机上是唯一的。使用NEWSEQUENTIALID()生成的GUID仅在源计算机有网卡的情况下在多台计算机上是唯一的。”
你必须读一点字里行间的文字,但如果你不做那些愚蠢的事情,它们真的是独一无二的。
补充评论
有一个明显的警告,MS文档可能是错误的。但要证明这一点需要很长的时间,如果你不得不通过复制来反驳的话。完全有可能ms不使用生成的现代guid,并且可能正在公开底层的mac地址。我似乎把源代码的代码放错了地方,无法确定地检查。:-)
https://stackoverflow.com/questions/24898641
复制相似问题