ブログに戻る
uuid 2025-01-18

UUID vs ULID: 違いを理解する

アプリケーションに適した識別子を選択するためにUUIDとULIDを比較します。

分散システムでは一意の識別子が不可欠です。UUIDとULIDを比較してみましょう。

UUIDとは?

UUID(Universally Unique Identifier)はRFC 4122で標準化された128ビットの識別子です。

UUIDバージョン

  • v1: タイムスタンプとMACアドレスに基づく
  • v4: ランダム(最も一般的に使用)
  • v7: ランダムコンポーネント付きの時間順序(最新)

: 550e8400-e29b-41d4-a716-446655440000

ULIDとは?

ULID(Universally Unique Lexicographically Sortable Identifier)は以下の特性を持つ128ビットの識別子です:

  • 辞書順でソート可能
  • 26文字で正規エンコード
  • CrockfordのBase32を使用

: 01ARZ3NDEKTSV4RRFFQ69G5FAV

主な違い

特徴UUID v4ULID

|------|---------|------|

ソート可能いいえはい 長さ36文字26文字 文字セット16進数 + ダッシュCrockford Base32

| 時間コンポーネント | なし | あり(48ビット)|

使い分け

UUIDを使用する場合

  • RFC準拠が必要な場合
  • 既存システムとの互換性
  • ソート要件がない場合

ULIDを使用する場合

  • 時系列ソートが必要な場合
  • データベースインデックスのパフォーマンスが重要な場合
  • より短いIDが必要な場合

データベースの考慮事項

ULIDがデータベースパフォーマンスを向上させる理由:

  • 順次挿入が高速
  • インデックスの局所性が向上
  • B-treeでのページ分割が減少

UUIDジェネレーターを使用して、任意のバージョンのUUIDを生成できます。