UUIDとは?v4・v1・v7の違いと使い分け
UUID(Universally Unique Identifier)は128ビットの一意識別子で、分散システムでIDを生成する際の標準形式です。データベースの主キー・ファイル名・セッションIDなど幅広い用途に使われます。
UUID v4(ランダム)
UUID v4は暗号論的に安全な乱数から生成されるため、推測が困難です。最も広く使われるバージョンで、ほとんどのユースケースに適しています。「xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx」の形式で、バージョン番号と少数のビットを除いてランダムです。衝突確率は極めて低く、実用上は無視できます。
UUID v1(タイムスタンプ)
UUID v1はMACアドレスと現在時刻から生成されます。タイムスタンプが含まれるため生成順に並べることができますが、MACアドレスが含まれるためプライバシー上の懸念があります。ログのトレースIDや時系列で並べたいIDに使えますが、現在はv7が代替として推奨されています。
UUID v7(順序付きランダム)— 新世代の標準
UUID v7は2022年に標準化された新しいバージョンで、Unixタイムスタンプをプレフィックスとして含みながら残りはランダムです。タイムスタンプ順に並ぶためDBのインデックス効率が良く、プライバシー問題もありません。PostgreSQL 17+・AWS・Cloudflareが採用しており、新規プロジェクトではv7が推奨されつつあります。
UUIDをDBの主キーに使う際の注意
UUID v4はランダムなためB-treeインデックスにおける挿入順序がランダムになりページ分割が頻発し、パフォーマンスが低下することがあります。大量のINSERTがある場合はUUID v7か順序付きUUID、またはULIDの使用を検討してください。UUID Generatorでは最大100件の一括生成とCSV/TXT出力(デスクトップ版)が可能です。