1

異なるシステム/データベース間で一意の識別子として使用する必要があるuuidを生成したいと思います。例を読みましたが、生成されたIDがさまざまなシステムやデータベースで一意であることを確認する方法がわかりません。

ここで私を助けてくれるといいのですが。

よろしくお願いします

4

1 に答える 1

2

UUIDの背後にある考え方は、生成方法にもよりますが、122 ビット* で表現できる値が非常に多いため、生成方法にもよりますが、偶発的な衝突の可能性が非常に高いということです。 、とても、とても、とても、とても、とても、とても、小さい。

UUID バージョン 4 (Leach-Salz Random) のウィキペディアからの抜粋:

つまり、次の 100 年間、毎秒 10 億個の UUID が生成された後でのみ、複製が 1 つだけ作成される確率は約 50% になります。地球上のすべての人が 6 億の UUID を所有している場合、1 つの重複の確率は約 50% になります。

...ただし、これらの確率は、UUID が十分なエントロピーを使用して生成された場合にのみ保持されます。

もちろん、他の UUID 生成スキームと「既知の GUID」がありますが、そのすべてが「グローバルに一意の」使用法に適しているわけではありません。(さらに、特殊化されていない UUID は、挿入時の断片化により、プライマリ/クラスター化されたキーに対してうまく機能しない傾向があります。SQL Server には、この問題を解決するためのNEWSEQUENTIALIDがあります。)

ハッピーコーディング。


*UUID には最大 128 ビットがありますが、一部の UUID バージョンは内部で一部のビットを使用します。ブーストが何を使用しているかはわかりませんが、それも UUIDv4 であると思われます

于 2011-11-09T09:39:07.557 に答える