UUIDのパフォーマンスと保存のヒント
大量生成とデータベース保存において、UUIDの性能を左右する要素を扱います。
生成パフォーマンス
UUIDの生成は非常に高速で、たいていボトルネックにはなりません。ブラウザ・サーバーともにcrypto.randomUUID()のようなネイティブAPIが最も速く安全です。数千個を一度に生成する場合でも負荷は大きくありません。
保存サイズ
UUIDを文字列(36文字)で保存すると、16バイトのバイナリ形式より2倍以上の容量を消費します。PostgreSQLのuuid型やMySQLのBINARY(16)のようにバイナリ保存を使えば、保存・インデックスの効率が向上します。
インデックスの局所性
ランダムなv4はインデックス全体に散らばって挿入され、書き込み性能を低下させることがあります。挿入が頻繁なテーブルなら、時刻順にソートされるv7やULIDを使ってインデックスの末尾に順次挿入させ、ページ分割を減らしましょう。