データベーススキーマを設計する際、主キーの形式の選択はしばしば見落とされがちですが、パフォーマンスに大きな影響を与える可能性があります。UUIDは中央機関なしで分散生成が可能なため人気がありますが、すべてのUUIDが同じではありません。UUID v4はランダムな値を生成するため、特に書き込み負荷が高い場合にBツリーインデックスでインデックスの断片化やキャッシュの局所性の低下を引き起こす可能性があります。一方、UUID v7はタイムスタンプをエンコードするため、値はほぼ時間順になります。この順序付けにより、インデックスページの利用率が向上し、新しいエントリがインデックス全体に散在するのではなく、インデックスの末尾近くに追加されるため、挿入レイテンシが減少します。イベントログやメッセージングシステムなど、書き込みスループットが高いアプリケーションでは、v4からv7への切り替えで測定可能なパフォーマンス向上が得られます。ただし、v7はタイミング情報を漏洩する可能性があるため、セキュリティに敏感なアプリケーションでは考慮が必要です。これらのトレードオフを理解することは、情報に基づいたスキーマ設計の決定に不可欠です。
UUID v4とv7はどちらも一意な識別子を生成しますが、データベースパフォーマンスへの影響は大きく異なる可能性があります。UUID v7は時間順序付けされており、ランダムなv4と比較してインデックスの局所性と書き込みパフォーマンスが向上します。これは高スループットシステムの主キーを設計する開発者にとって重要な考慮事項です。