【WEB】UUIDとULIDの違いって?(’21 6月更新)
- 似て非なるもの多すぎ問題
- UUIDとULIDの違い
- UUID(Universally Unique Identifier)
- ULID(Universally Unique Lexicographically Sortable Identifier)
- よくわからない
- ソートの可否(’21 6月追記)
- 一意性にかわりない
- 参考URL
違いシリーズ第三弾!
第一弾と第二弾はこちら↓。(シリーズ化するつもりもない)
似て非なるもの多すぎ問題
いや、多いのよまじで。
故に、初心者にとって単語が理解できずに話についていけないシーン多いです。似た単語の違いを調べることがまだあるかもしれないので、先にシリーズ化を予兆する。
UUIDとULIDの違い
根本的には同じものなのかもしれない、と調べていて感じました。
とはいえ違いはあるので、それぞれ見ていきましょう。
(結論としては、あまりわかっていません。しっかり知りたい人は回れ右!)
UUID(Universally Unique Identifier)
ソフトウェア上でオブジェクトを一意に識別するための識別子である。
出典: UUID - Wikipedia
ULID(Universally Unique Lexicographically Sortable Identifier)
そもそも、各言語のライブラリを有志が実装している感じです。
ミリ秒単位でユニークでソート可能だそうです。
UUIDとの128ビット互換性 1ミリ秒あたり1.21e + 24の一意のULID 辞書式にソート可能 36文字のUUIDとは対照的に、標準的に26文字の文字列としてエンコードされます。 効率性と読みやすさのためにCrockfordのbase32を使用します(1文字あたり5ビット) 大文字小文字を区別しません 特殊文字なし(URLセーフ) 単調ソート順(同じミリ秒を正しく検出して処理します)
よくわからない
結局、根本にUUIDがあって、そこからULIDが派生というか改良?されたものなのかな、という印象。
もう少し違いがわかるようになったら追記しようと思います。
ソートの可否(’21 6月追記)
見出しにもあるように、ソートができるのかできないのかという認識でいったんよさそうです。
UUID
重複しない一意なIDを生成できるがランダムな値
ULID
重複しない一意なIDを生成し、かつミリ秒単位で時系列ソートができる値
一意性にかわりない
一意であればいいってだけならUUID
、さらにソートもしたいのであればULID
を使えばいいようです。