UUIDジェネレーター
UUID v1・v4・v7を任意の数だけ生成します。
UUIDについて
UUID(Universally Unique Identifier)は128ビットの固有識別子で、中央サーバなしに分散環境で衝突のないIDを生成できます。
形式: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
(M = バージョン、N = バリアントビット)
主な用途:
• データベース主キー(PK)
• セッション・トークンID
• 分散システムの固有識別子
• ファイル・リソースの命名
UUIDバージョン比較
| バージョン | 基盤 | ソート可能 | 主な用途 |
|---|---|---|---|
| UUID V1 | タイムスタンプ + MAC | 可能 | 分散システム・ログ追跡 |
| UUID V4 | 乱数 | 不可 | 汎用・セッションID |
| UUID V7 | Unixタイムスタンプ | 可能 | 最新DB・時刻順インサート |
UUID例
よくある質問
UUID v4とv7のどちらを使うべきですか?
一般的な用途(セッションID、トークンなど)にはv4が最も広くサポートされています。データベースの主キーで時刻順ソートが必要な場合はv7を推奨します。v7はタイムスタンプベースのため、B-treeインデックスのパフォーマンスがランダムなv4より優れています。
UUIDが衝突する可能性はありますか?
UUID v4は122ビットのランダムエントロピーを持ちます。毎秒10億個生成しても、100年後の衝突確率は約50%に過ぎません。実質的に衝突は起こらないと考えて問題ありません。
UUIDをデータベースの主キーに使えますか?
v4は完全にランダムなため、B-treeでページ分割が頻発します。v7やULIDのような時刻順ソート可能なIDがデータベースパフォーマンスに有利です。MySQLではBINARY(16)で保存するとVARCHAR(36)より容量を節約できます。
UUID v1はMACアドレスが漏洩しますか?
元のv1仕様では実際のMACアドレスが含まれます。ただし、このツールはランダムなノード値を使用するため、MACアドレスは漏洩しません。セキュリティが重要な場合はv4またはv7の使用を推奨します。