気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

UUID, ULIDとは?

UUIDとは?

開発時にデータに一意なIDを割り振る際によく用いられる。

UUIDには複数のバージョンがあり、UUID v4がよく用いられている。

特徴

  • ビット幅は 128ビット(16バイト) で、文字列表現では16進法で以下のような形で表現する。
  • (32バイト+バウンダリ4バイト=36バイト。 "-" がバウンダリ文字列)
550e8400-e29b-41d4-a716-446655440000

UUID v4

  • UUID v4は、ランダムな値に基づいて生成される128ビットの識別子
  • 生成ごとに完全にランダムな値が生成される
  • 衝突可能性も0ではないが、現実的には衝突ので安全に利用できる

UUID v7

  • UUID v7は、UUID v4と同様に128ビットのランダムな識別子
  • 現在の時刻を表すタイムスタンプに基づいて生成される
  • タイムスタンプは、ナノ秒単位の精度まで含まれる
  • このため、生成時刻の順序が保証され、生成時刻を基準にソートが可能

ULID

  • ULIDとは、UUIDと同様にランダムな識別子
  • UUID v4とは違い、先頭48ビットにタイムスタンプを置くことにより、ソート可能
  • 1ミリ秒単位でソート順が保証されており、同一の生成器であれば280までソート順が保証される。

それぞれの識別子フォーマット

UUID(Ver.4)
2ec40df6-7587-42ee-bf83-ef97a3e46556

UUID(Ver.7)
018422b2-4843-7a62-935b-b4e65649de3e

ULID
01GWKR0SQ0KD0QZ3SHEEAM8YDJ

参考URL