15

非常に多数 (数千万) の 512 ビット SHA-2 ハッシュを MySQL テーブルに格納する必要があります。スペースを節約するために、16 進数の文字列ではなく、バイナリ形式で保存したいと思います。私は ORM ( DBix::Class ) を使用しているので、ストレージの特定の詳細はコードから抽象化され、選択した任意のオブジェクトまたは構造に膨らませることができます。

MySQL のBIGINT型は 64 ビットです。したがって、理論的には、ハッシュを 8 つのBIGINT列に分割できます。それはかなりばかげているように思えますが。私のもう1つの考えは、単一のBLOB列を使用することでしたが、MySQLが可変長フィールドとして扱っているため、アクセスが遅くなる可能性があると聞きました。

誰かが私にさまざまな方法のベンチマークを数時間節約する知恵を提供してくれるなら、私はそれを感謝します.

注: 「Postgres を使用してください!」と言う人には、自動 -1 が適用されます。:)

4

2 に答える 2

21

「バイナリ(64)」を検討しましたか?MySQL バイナリ型を参照してください。

于 2009-07-31T09:15:02.267 に答える
8

タイプBINARY (64) を使用しますか?

于 2009-07-31T09:13:37.823 に答える