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ジェネレーター