ULID(Universally Unique Lexicographically Sortable Identifier)は、時間順序を保持できるよう設計された一意識別子です。標準ULIDは128ビットで、48ビットのミリ秒タイムスタンプと80ビットのランダムデータから構成され、通常26文字の文字列で表されます。
タイムスタンプが識別子の先頭に含まれるため、ULIDは通常、文字列として並べ替えることで生成時間の順序を反映できます。
標準ULIDは48ビットのミリ秒タイムスタンプと80ビットのランダムデータで構成されます。Crockford Base32でエンコードされ、通常26文字で表されます。
ULIDとUUIDはいずれも一意識別を目的としていますが、設計思想が異なります。従来のUUIDは主に一意性を重視するのに対し、ULIDは時間順序も扱えるように設計されています。
標準ULIDの先頭48ビットにはミリ秒単位のUnixタイムスタンプが保存されています。そのためULIDから時間情報を解析できます。
ULIDは非常に大きな識別子空間を持ちますが、実際のシステムではデータベースのインデックス、保存形式、並び順、ID生成方式などを総合的に考慮する必要があります。
コメント 0