UUID v4 とは
UUID v4 は 128 ビットのうち 122 ビットを乱数で埋めた識別子です。この乱数性によって現実的な規模では重複が起こりえないため、データベースや API、分散システムでは v4 が既定の選択になります。
バージョンビット (4) とバリアントビットは固定で、残りは暗号学的乱数から得られます。独立に生成された 2 つの v4 が一致することは実質的にありません。
使い方
- 個数に必要な件数を入力します (1〜1000)。
- 必要に応じて書式を変更します。大文字、ハイフン、波括弧。
- 生成を押し、1 つだけコピーするか、すべて取得するか、保存します。
用途
- 挿入順が問題にならない主キー。
- ログや障害追跡で使う相関識別子。
- 重複してはいけないファイル名やリソース名。
- テストデータや開発環境のシード値。
UUID v4 の位置づけ
| 選択肢 | 使う場面 |
|---|---|
v4 | 純粋な乱数。既定の選択 |
v7 | 列にインデックスがあるなら v7 がインデックスを保ちます |
ULID | JavaScript 界でよく使われる 26 文字の並べ替え可能な形式 |
UUID の各バージョン早見表
| バージョン | 並べ替え可能 | 基になる情報 | 向いている用途 |
|---|---|---|---|
| v1 | 不可 | タイムスタンプ + MAC アドレス | v1 に依存したままの既存システム |
| v3 | 不可 | 名前の MD5 ハッシュ | MD5 を使わざるを得ない場面の決定的な識別子 |
| v4 | 不可 | 122 ビットの乱数 | 一般的な識別子のほとんど |
| v5 | 不可 | 名前の SHA-1 ハッシュ | 同じ名前から常に同じ識別子を得たいとき |
| v6 | 可 | 並べ替えたタイムスタンプ | 乱数性を保ったまま並べ替えたいとき |
| v7 | 可 | ミリ秒精度の Unix 時刻 | データベースの主キーやイベント識別子 |
| v8 | 不可 | 独自のビット配置 | 独自形式や実験的な用途 |
7 つのバージョンはいずれも 128 ビットで、同じ 8-4-4-4-12 の形式で表記します。違うのはビットの意味だけです。
よくある質問
UUID v4 が重複する確率はどのくらいですか?
重複の確率が 10 億分の 1 になるには約 2.6 × 1010 個の UUID が必要です。現実的な規模ではリスクは無視できます。
v4 は主キーに使えますか?
使えます。ただし列の型を uuid または BINARY(16) にしてください。36 文字の文字列として保存すると 2 倍以上の容量を占め、インデックスも遅くなります。挿入順も重要な場合は v7 を検討してください。
生成した UUID はサーバーに送信されますか?
いいえ。値はブラウザ内の Web Crypto API で生成され、デバイスの外には出ません。読み込み後はオフラインでも動作します。