2009-07-31 14 views
14

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

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

誰かが私にさまざまな方法のベンチマークの数時間を節約するいくつかのwidsomを提供できるなら、私はそれを感謝します。

注:「just use postgres! :)

+12

私はちょうどpostgresを使用しています:) – jeje

答えて

18

「バイナリ(64)」とお考えですか? MySQL binaryタイプを参照してください。

+0

ありがとうございます、「BINARY」は完全に動作するように見えます。 – friedo

7

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

関連する問題