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
主な違い
|------|---------|------|
| 時間コンポーネント | なし | あり(48ビット)|
使い分け
UUIDを使用する場合:
- RFC準拠が必要な場合
- 既存システムとの互換性
- ソート要件がない場合
ULIDを使用する場合:
- 時系列ソートが必要な場合
- データベースインデックスのパフォーマンスが重要な場合
- より短いIDが必要な場合
データベースの考慮事項
ULIDがデータベースパフォーマンスを向上させる理由:
- 順次挿入が高速
- インデックスの局所性が向上
- B-treeでのページ分割が減少
UUIDジェネレーターを使用して、任意のバージョンのUUIDを生成できます。