🌐 JA

🆔 UUID生成ツール

汎用一意識別子(UUID)を生成します。データベースキー、APIトークン、セッションIDなどに使われる標準的なUUIDを作成できます。

バージョン情報

v1(タイムスタンプベース)
MACアドレスとタイムスタンプに基づき、時間順を保証します。
v4(ランダム)
完全ランダム。最も一般的に使われます。
v7(タイムスタンプでソート可能)
タイムスタンプでソート可能。最新の標準です。
ガイド

詳しく見る

01

1. UUIDとは?

UUID(Universally Unique Identifier)は汎用一意識別子であり、中央での調整なしに一意性を保証する128ビットの識別子です。8-4-4-4-12形式の16進数で表現され(例:550e8400-e29b-41d4-a716-446655440000)、世界中のどこで生成しても重複する確率は極めて低くなります。データベースの主キー、セッションID、ファイル名、APIトークンなどさまざまな場面で使用されます。GUID(Globally Unique Identifier)とも呼ばれ、RFC 4122標準で定義されています。

02

2. UUIDバージョン別の特徴比較

UUIDには全部で5つのバージョンがあり、それぞれ異なる生成方式を使用します。v1はMACアドレスとタイムスタンプを組み合わせて時間順を保証しますが、MACアドレスの露出によるセキュリティリスクがあります。v4は完全ランダム生成で最も広く使われ、予測不可能性が高いのが特徴です。v7は2024年に標準化された最新バージョンで、タイムスタンプベースのソートが可能なためデータベースのインデックスに有利です。v2はDCEセキュリティ用、v3/v5はネームスペースベースで特殊な目的に使われます。

03

3. UUIDの利用シーン

UUIDはさまざまな状況で役立ちます。分散システムでは中央サーバーなしで一意なIDを生成できるため、拡張性に優れます。データベースでは自動採番のIDの代わりにUUIDを主キーとして使うと、マージ時の衝突を回避できます。マイクロサービスアーキテクチャではサービス間通信の追跡に使われます。ファイルアップロード時のファイル名衝突の防止、一時トークンの生成、イベント追跡、ログの相関分析などにも広く利用されています。

04

4. v1・v4・v7の選択ガイド

UUIDバージョンの選択は要件によって変わります。v1は時間順が重要で、MACアドレスの露出が許容できる場合に選びます。ただしMACアドレスによって生成場所を追跡できるため、プライバシー上の問題があります。v4はセキュリティが重要で順序が不要な場合の最適な選択肢です。完全ランダムなため予測不可能で、個人情報の露出もありません。v7は時間ソートとセキュリティの両方を求める場合に推奨されます。タイムスタンプベースのソートによりデータベース性能が良く、インデックスの断片化も少なくなります。

05

5. UUIDの一意性を保証する仕組み

UUIDの衝突確率は天文学的に低くなっています。v4の場合、122ビットがランダムなので2^122 = 5.3 x 10^36通りの組み合わせがあります。毎秒10億個を生成しても、衝突確率50%に達するには85年かかります。v1はタイムスタンプ(60ビット)とクロックシーケンス(14ビット)で時間ベースの一意性を保証し、MACアドレス(48ビット)で空間ベースの一意性を保証します。v7はUnixタイムスタンプ(48ビット)とランダム(74ビット)を組み合わせ、時間順と一意性の両方を満たします。

06

6. データベースでのUUID活用

UUIDをデータベースの主キーとして使うと、いくつかの利点があります。分散環境では中央のID生成器なしで各ノードが独立してIDを作成できるため、拡張性に優れます。データのマージ時にID衝突がなく、URLに露出しても連番の推測が不可能なためセキュリティに有利です。ただし欠点もあります。16バイトと整数型(4〜8バイト)より大きく、v4はランダムなためインデックス性能が低下することがあります。このような場合はv7を使うと時間順にソートされ、B-treeインデックスの性能が向上します。