TIL: UUIDのバージョンと使い分け
(ntietz.com)-
UUIDのさまざまなバージョン
- UUID Version 1 (v1): タイムスタンプ、単調カウンター、MACアドレスから生成される
- UUID Version 2 (v2): セキュリティ ID 用に予約されている。詳細は知られていない
- UUID Version 3 (v3): 与えられたデータの MD5 ハッシュから生成される。DNS と URL が候補データとして提案されている
- UUID Version 4 (v4): 完全にランダムなデータから生成される。多くの人が UUID と聞いて思い浮かべるもの
- UUID Version 5 (v5): 与えられたデータの SHA1 ハッシュから生成される。v3 と同様に DNS と URL が候補データとして提案されている
- UUID Version 6 (v6): タイムスタンプ、単調カウンター、MACアドレスから生成される。v1 と同じデータだが、生成時刻順に並べ替えられるよう順序が変更されている
- UUID Version 7 (v7): タイムスタンプとランダムデータから生成される
- UUID Version 8 (v8): 完全にユーザー定義可能(必須のバージョン/バリアントフィールドを除く)
-
使うタイミング
- v4: ランダム ID が必要なときに使う。デフォルトの選択として適している
- v7: ソートが必要な場合に使う。たとえば、データベースキーとして使うのに適している
- v5 または v8: 一意なデータを UUID に含めたいときに使う。必要になれば分かるはず
-
他のバージョンについて
- v7 は v1 と v6 を改善したバージョンで、可能なら v7 を使うのがよい。したがって v1 や v6 は通常使わない
- v2 はセキュリティ関連用途のために予約されている。使っているなら、詳しい内容を知ることはできない可能性が高い
- v3 は v5 に置き換えられている。v5 はより強力なハッシュを使う
GN⁺のまとめ
- UUID にはさまざまなバージョンがあり、それぞれ特定の用途に合わせて設計されている
- v4 と v7 が最も一般的に使われ、v5 と v8 は特定のデータ要件があるときに使われる
- UUID のバージョン選択は用途によって異なり、ソートが必要な場合は v7、ランダム ID が必要な場合は v4 を使うとよい
- UUID のさまざまなバージョンを理解すると、プロジェクトに適した UUID を選ぶのに役立つ
1件のコメント
Hacker Newsのコメント
UUID Version 2 (v2) はセキュリティ ID 用に予約されているが、詳細はあまり知られていない
UUID v2 の詳細は RFC 9562 文書で簡単に見つけられる
UUID v7 のタイムスタンプは、Databend でメタデータファイルをすばやく見つけるのに役立つ
短い UUID の標準があればよいと思う
73WakrfVbNJBaAmhQtEeDvまたはbK7nP9xMUUID2 の目的は理解しにくい
UUID v4 は単なるランダムバイト生成器
MAC ベースのバージョンは使わないほうがよい
SHA256 データとカウンターを使う UUID は有用かもしれない
v7 を使うのがよい
興味深い読み物だった