非常に多数 (数千万) の 512 ビット SHA-2 ハッシュを MySQL テーブルに格納する必要があります。スペースを節約するために、16 進数の文字列ではなく、バイナリ形式で保存したいと思います。私は ORM ( DBix::Class ) を使用しているので、ストレージの特定の詳細はコードから抽象化され、選択した任意のオブジェクトまたは構造に膨らませることができます。
MySQL のBIGINT
型は 64 ビットです。したがって、理論的には、ハッシュを 8 つのBIGINT
列に分割できます。それはかなりばかげているように思えますが。私のもう1つの考えは、単一のBLOB
列を使用することでしたが、MySQLが可変長フィールドとして扱っているため、アクセスが遅くなる可能性があると聞きました。
誰かが私にさまざまな方法のベンチマークを数時間節約する知恵を提供してくれるなら、私はそれを感謝します.
注: 「Postgres を使用してください!」と言う人には、自動 -1 が適用されます。:)