MD5
ファイルをJava(またはGroovy)オブジェクトに格納する最も効率的な方法(パフォーマンスと格納領域に最適)は次のユースケース:Javaオブジェクトに大きな16進数(md5)を格納する最も効率的な方法
- 他の何千ものmd5合計と比較する必要があります。レコードがMD5
- に基づいて/
group by
引っ張ることができるように、私は、HSQLDBでこれを格納する必要があるかもしれません - は、私が
String
としてそれを保存しないようにしようとしていますキー
としてMap
年代に保存することができます文字列の比較はよりコストがかかり、より多くのスペースを取るためです。 BigInteger(string,radix)
はより効率的ですか?また、データベースに永続化する場合は、どのデータ型を選択する必要がありますか?
お返事ありがとうございます。 groovy 'new BigInteger(1、digest).toString(16).padLeft(32、 '0')'は 'byte []'からハッシュを生成することができます。 BigIntとStringのどちらかを選択しなければならない場合は、何をお勧めしますか?これは単なるスクリプトであり、ラッパーを作成することは過度の可能性があるため(これは大きなパフォーマンス上の利点はありません)、これを求めています。 – kunal
@kunal、bigintとstringの間で強制的に選択すると、BigIntegerが選択されます。一連の16進数字を素朴に文字列として保存すると、文字列はスペース効率が悪くなります。あなたはビットをUTF-16コード単位にパックすることができますが、厄介な理由はありません。すべての作業のために保存するのは、BigIntegerを超える16bです。 –
もう一度お返事ありがとうございます。 @ericksonが述べたように、それを長く保存するのはどうですか? – kunal