jpa idsとしてuuidsに使用する最良の(最も効率的な)データ型
質問
JPAオブジェクトのIDとしてUUIDを使用したいと思います。
私は現在、文字列を使用してUUIDを保存しています。より効率的なものは何ですか?
解決
効率をどのように測定していますか?
たとえば、UUIDを保存します(これはのテキストエンコードです byte[]
)いくつかのように long
値を使用すると、64ビットアーキテクチャで非常に迅速に比較できます(より速く String
比較、これは文字ごとです)。ただし、カスタムタイプを書く必要があるため、コーディング効率が低下します。
あなたの場合、何が重要ですか?
データベース内のパフォーマンスに興味がある場合、パフォーマンスは選択したデータベースに多少依存しますが、すべてが基本的にUUIDSバイバイトを比較します。したがって、重要なことは、キーの始まりに向かっている可能性が高いキー間の違いを作ることです。
この点でUUIDはよく設計されています。最高のUUIDは「ランダム」スタイルです。彼らは、始まりを含むどこにも多くの一般的なサブストリングを持っていません、そして、彼らはそれらを生成したマシンに関する情報を漏らしません。しかし、UUIDの「タイムスタンプ」スタイルも同様に良い鍵を作ります。低次のビット(すぐに変化する)は文字列で最初に、一方、高次ビット(連続したUUIDの場合は変わらない)が来るので後で。
所属していません StackOverflow