UUID とは
UUID (Universally Unique Identifier) は RFC 4122 で定義された 128 bit の識別子で、16 進 8-4-4-4-12 形式で 32 文字表記。UUID v1 は時間ベース、v4 はランダムベースで実用上 v4 が最も普及しています。
v4 のランダム性
UUID v4 は 122 bit の強乱数で埋め、先頭 6 bit がバージョン/バリアント。例:
550e8400-e29b-41d4-a716-446655440000
1B 個/秒生成しても 50% 衝突は約 82 年後(数学的証明)。
Nano ID とは
Nano ID は Andrey Sitnik が 2017 年に作った ~130 B の軽量ライブラリ。UUID v4 より 4 倍短く、デフォルト文字は A-Za-z0-9_-。
推奨用途
- DB 主キー — BINARY(16) で省スペース化。
- 分散トレース — UUID v4 が OpenTelemetry 標準。
- API トークン/短リンク — Nano ID + HMAC 署名を推奨。
- ファイル名 — Nano ID は URL でそのまま使える。
性能
スループット: UUID v4 ≈ 1.3M/s、Nano ID ≈ 1.8M/s。バッチ生成 (>1000) では Nano ID がやや優位。
「生成」を押して 100 個のユニーク ID をミリ秒で取得する体験を試してみてください。