Javaで生成されたUUIDをOracle DBに格納する効率的な方法は何ですか? UUIDのハイフンを削除するか削除しないかは、ストレージ/パフォーマンスに役立ちますか?
07b319dc-7e64-4047-a3e3-63ab43864d81
そのまま
収納するか、そのまま収納
07b319dc-7e64-4047-a3e3-63ab43864d81
するかで07b319dc7e644047a3e363ab43864d81
違いはありますか?
ハイフンを削除すると、データベースの1行あたり正確に4文字節約できますが、これは実際には努力する価値がありません。これらの4つの文字のために、Oracleは大幅に遅くなったり速くなったりすることはありません。さらに悪いことに、値を選択してJavaアプリケーションに戻し、java.util.UUID
オブジェクトを再作成する場合は、正しい場所にハイフンを再挿入する必要があります。
データベースのメモリを少し節約したい場合はRAW(16)
(質問のコメントでvcsjonesが言及しているように)、フットプリントが最小になります。ただし、この型を使用する場合は、UUIDを配列RAW
に分解する必要があります。1つまたは2つの値しか返さないbyte[]
ため、これは少し注意が必要です。配列からのオブジェクトの再作成はさらに注意が必要です。java.util.UUID
String
long
UUID
byte[]