UUID vs 自動採番の整数主キー
データベースの主キーとして UUID と自動採番の整数のどちらを使うかを比較します。
自動採番の整数
短く高速で、インデックスの局所性にも優れています。ただし複数のデータベースを統合するのが難しく、連番から全レコード数が推測でき、アプリケーション側で事前に ID を生成したり分散生成したりするのも困難です。
UUID
分散環境でも衝突なくそれぞれが生成でき、値が推測されにくいのが利点です。一方で 128 ビットと整数より大きく、ランダムな v4 はインデックス上に散らばって挿入されるため、書き込み性能を低下させることがあります。
選択の基準
単一データベースの内部システムなら整数がシンプルで効率的です。分散システムや公開 API、複数ソースの統合が必要なら UUID、特に時系列順にソートされる v7 が有利です。内部用の整数主キーと外部公開用の UUID を併用する折衷案もよく使われます。