地方在住IT系ニート

bkds

UUIDのメモ

はじめに

UUID(Universally Unique Identifier)は、重複しない識別子を生成するための規格です。 分散環境やデータベースなどで一意性を保証するIDが必要な場合によく利用されます。

ここではUUIDの基本的な仕組みと、バージョンごとの違い、ソート可能な識別子であるULIDやUUIDv7についても簡単にまとめました。

UUIDの構造

UUIDは128ビット(16バイト)の固定長データです。一般的には、ハイフンで区切られた32桁の16進数として表現されます。

例:


550e8400-e29b-41d4-a716-446655440000

UUIDのバージョン

UUIDには複数のバージョンが定義されています。それぞれ、生成方法や用途が異なります。

バージョン生成方法特徴ソート可能性
v1時間+MACアドレス時系列順になりやすいがMACが漏れる
v3名前ベース(MD5)同じ入力から同じ値
v4ランダム重複確率が非常に低い
v5名前ベース(SHA-1)同じ入力から同じ値
v7時間+ランダム将来標準、ソート性が高い

使用例

プログラムやDBでUUIDを生成する例です。

Linux CLIでの生成

uuidgen

Pythonでの生成

import uuid
print(uuid.uuid4())

Goでの生成

import "github.com/google/uuid"

id := uuid.New()
fmt.Println(id.String())

メモ

ULIDとは

ULID(Universally Unique Lexicographically Sortable Identifier)は、UUIDと同様に一意な識別子ですが、ソート可能性と可読性を重視した設計です。

<-- Back to home
にほんブログ村 IT技術ブログ IT技術メモへ PVアクセスランキング にほんブログ村