UUID(v4)をまとめて発行します。データベースの主キー、ファイル名、テスト用の識別子として使えます。
UUIDとは
128ビットの識別子で、8-4-4-4-12桁の16進数で表記されます。中央集権的な採番をせずに、事実上重複しない値を各所で生成できるのが特徴です。
v4はランダムに生成される方式です。理論上の衝突確率は極めて低く、実務上は「重複しない」と扱って問題ないとされています。
例: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
└8桁┘ └4┘ └4┘ └4┘ └──12桁──┘主キーに使うときの注意
- 文字列型(36文字)で持つと、整数の連番より容量を使います
- ランダムな値のため、B-treeインデックスの断片化が起きやすくなります
- 生成順に並ばないため、作成順のソートには別途タイムスタンプが必要です
- 時系列でソートできるUUID v7という方式も策定されています
使いどころ
- 分散システムでの一意な識別子
- アップロードファイルの名前(元の名前を隠せます)
- テストデータの識別子
- 冪等性キー(同じ処理の重複実行を防ぐ)
URLに使うときの注意
UUIDをURLに含めると、推測されにくい識別子として機能します。ただし、これは「知られなければ安全」という前提に依存しており、認証の代わりにはなりません。
共有リンクの仕組みで使う場合は、有効期限やアクセス権の確認をあわせて実装してください。
よくある質問
Q 重複することはありますか?
理論上はゼロではありませんが、確率は極めて低く、実務では重複しないものとして扱えます。
Q v4以外のバージョンは?
本ツールはv4(ランダム)を生成します。時刻ベースのv1や、時系列ソート可能なv7といった方式もあります。
Q 主キーに使ってもいいですか?
使えますが、容量とインデックスの効率で連番に劣ります。分散環境での利点と天秤にかけて判断してください。
Q 生成はどこで行われますか?
ブラウザ内で生成しており、外部には送信されません。
