- ホーム
- UUID生成
UUIDジェネレーター
重複を防ぐためのタイムスタンプベースのアルゴリズムを使用して汎用一意識別子(UUID)を生成します。
UUIDの仕組み
UUID v1 (タイムスタンプベース): 現在のタイムスタンプ(1582年10月15日からの100ナノ秒間隔)をMACアドレスまたはランダムノード識別子と組み合わせて使用します。これにより、異なるマシン間での一意性が保証され、同時生成時でも重複を防ぎます。
UUID v4 (ランダム): 暗号学的に強力な乱数を使用します。理論的には重複の可能性がありますが、確率は非常に低く(2^122分の1)、実用的な目的では無視できます。
UUID v7 (モダンタイムスタンプ): Unixタイムスタンプ(48ビット)とランダムデータ(74ビット)を組み合わせた最新のUUIDバージョン。v1の時間ソートの利点とv4のプライバシーを両立させ、データベースの主キーに最適です。
フォーマット: UUIDは128ビットの値で、32個の16進数字で次の形式で表示されます: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
一般的な使用例
UUID(GUIDとしても知られる)は、中央機関と連携することなく、実質的に無制限のユニークな識別子プールを提供します。一般的に使用される場所をいくつか紹介します:
データベースの主キー
UUIDを使えば、複数のサービスやシャードが衝突なく独立してキーを生成できます。先頭のタイムスタンプによって挿入の局所性が保たれ、インデックスがコンパクトに保たれるため、UUID v7がますます好まれています。
分散システム
多数のノードがイベントを生成する場合、イベントごとのUUIDは中央集権的なシーケンスのボトルネックを回避し、サービス境界を越えてログを追跡可能に保ちます。
公開向け識別子
URLのUUID v4は、インクリメント整数のようにレコード数を明らかにしたり、列挙攻撃を可能にしたりしません。
冪等性キー
クライアントがリクエストごとにUUIDを生成するため、サーバーは再試行を認識し、同じアクションを二度処理することを避けられます。
どのバージョンを使うべきか?
- 追加のプロパティなしにシンプルなランダム性が欲しい場合は v4 を使用してください - これはほとんどのアプリケーションにとって最も安全なデフォルトです。
- 識別子がデータベースの主キーになる場合、または挿入順序が重要な任意のインデックスに保存される場合は v7 を使用してください。埋め込まれたタイムスタンプにより行がまとまってクラスタ化され、大規模な書き込みパフォーマンスが劇的に向上します。
- タイムスタンプとノード識別子から識別子を派生する必要がある場合にのみ v1 を使用してください。現代のアプリケーションでは、同じユースケースに対してMACアドレスを漏らさないv7の方が良い選択です。
よくある質問
UUIDとは何ですか?
UUID(普遍的に一意な識別子)は128ビットの値で、通常 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx の形式の32桁の16進数で記述されます。異なるバージョンでは異なる戦略(ランダム、タイムスタンプ、または両方)で値を生成します。
UUIDとGUIDの違いは何ですか?
両者は同じものを指します。GUID(グローバルに一意な識別子)はMicrosoftエコシステムで使われる名称で、UUIDはRFC 4122やその他の場所で使われる名称です。フォーマットと一意性の保証は同一です。
UUIDは一意性が保証されますか?
数学的に保証されているわけではありません - しかし、UUID v4の衝突確率は約2^122分の1で、あらゆる実用的なアプリケーションのしきい値をはるかに下回ります。UUID v1とv7については、タイムスタンプとノード/ランダムビットが実質的に衝突を防ぎます。
データベースの主キーにはUUID v4とUUID v7のどちらを使うべきですか?
データベースの主キーには通常UUID v7の方が優れています。先頭のビットがUnixタイムスタンプであるため、新しい行はディスク上で近い位置に挿入され、インデックスがコンパクトに保たれ、書き込みが高速になります。挿入順序が絶対に推測できてはならない場合にのみv4を使用してください。
UUID v1ジェネレーターは必要ですか?
めったに必要ありません。UUID v1には生成マシンのMACアドレス(またはランダムな代替物)が含まれており、情報を漏らす可能性があります。UUID v7はその懸念なしに同じ時系列ソート可能な特性を提供し、今日ではほぼ常により良い選択肢です。
このUUIDジェネレーターは無料で使えますか?
はい。すべての生成はブラウザ内で行われ、レート制限はなく、アカウントも不要です。ここで個別のUUIDを生成することも、一度に最大500個生成する一括ジェネレーターに切り替えることもできます。
関連ツール
Hexbonが提供する他の無料ツールもご利用いただけます。