UUIDの理解

UUIDはあらゆる場所にあります—データベース、API、ファイルシステム。しかし、それらは何であり、なぜそれほど広く使用されているのでしょうか?このガイドでは、UUIDについて平易な言葉で説明します。

UUIDが解決する問題

データベースに新しいユーザーを追加する必要があるとします。そのユーザーに一意のIDが必要です。従来のアプローチは、自動インクリメント整数(1、2、3...)を使用することです。これは単純ですが、問題があります。 複数のデータベースサーバーがある場合はどうなりますか?両方が1から開始し、衝突します。オフラインでレコードを作成する必要がある場合はどうなりますか?データベースに問い合わせる前にIDが必要な場合はどうなりますか?複数のシステムからデータをマージする必要がある場合はどうなりますか? UUIDはこれらすべての問題を解決します。調整なしに、どこでも一意のIDを生成できます。2つのシステムが同じUUIDを生成する可能性は天文学的に小さいです。

UUIDの外観

UUIDは次のようになります:550e8400-e29b-41d4-a716-446655440000。これは、ハイフンで区切られた32文字の16進数です。形式は常に8-4-4-4-12です。 これらの128ビットは、実質的に無限の一意の値を提供します。338,000,000,000,000,000,000,000,000,000,000,000,000の可能なUUIDがあります。これは、衝突の心配なしに、数十億年間、毎秒数十億のUUIDを生成できることを意味します。 UUIDはランダムに見えますが、一部のバージョンには構造があります。バージョンとバリアントビットは、どのように生成されたかを示します。

UUIDが使用される場所

データベースは、特に分散システムで、主キーにUUIDを使用します。PostgreSQL、MySQL、MongoDBはすべてUUIDをサポートしています。 APIは、予測不可能で、システム情報を漏らさないため、リソース識別子にUUIDを使用します。整数IDとは異なり、UUIDから何も推測できません。 ファイルシステムは、一時ファイルとアップロードに一意の名前を生成するためにUUIDを使用します。セッション識別子、メッセージID、トランザクションIDはすべてUUIDである可能性があります。 どこでも一意の識別子が必要で、中央のカウンターが必要ない場合、UUIDは優れた選択肢です。

ツールを試す

UUIDジェネレーター

UUIDジェネレーター

関連記事