|
186
|
| rocketmonkeys · 技术社区 · 16 年前 |
|
|
1
275
可以通过创建两个以上的副本来创建副本 14 uuid1在不到100ns的时间内完成,但这对于大多数用例来说都不是问题。
This excellent answer by Bob Aman 总结得很好。(我建议阅读整个答案。)
|
|
|
2
34
你可以考虑的一个例子
在这种情况下,由于伪随机数生成器的初始化方式选择不当而产生冲突的风险,以及产生的UUID数量可能更高,使得创建重复ID的可能性更大。
另一个兴趣
|
|
|
3
30
我的团队在使用UUID1进行数据库升级脚本时遇到了麻烦,我们在几分钟内生成了约120k个UUID。UUID冲突导致违反主键约束。 我们已经升级了100台服务器,但在我们的AmazonEC2实例上,我们曾多次遇到这个问题。我怀疑较差的时钟分辨率和切换到UUID4解决了这一问题。 |
|
|
4
6
使用时需要注意的一件事
|
|
|
5
4
也许没有提到的是地方性。 MAC地址或基于时间的排序(UUID1)可以提高数据库性能,因为与随机分布的数字(UUID4)相比,将数字更紧密地排序所需的工作更少(请参阅 here 第二个相关问题是,即使源数据丢失或未显式存储,使用UUID1在调试中也很有用(这显然与OP提到的隐私问题相冲突)。 |
|
|
6
2
具有随机MAC的v1(“v1mc”)
我遇到的第一个问题是Postgres的 uuid_generate_v1mc() 功能。此后,我使用了以下python等价物:
(注意:我有一个更长更快的版本,可以直接创建UUID对象;如果有人愿意,可以发布)
如果每秒有大量呼叫,这可能会耗尽系统的随机性。你
能够
使用stdlib
|