私は32768ビットの長いビット列をMySQLテーブルに格納する必要があります。このデータの必要性はいつでも索引付けされる必要はなく、フルテキストで検索される必要もありません。私が正しく読んだら、このサイズは、max_packet_sizeと行サイズ制限@ 65kの両方の範囲内でなければなりません。長いビットストリングに最も効率的なMySQLデータタイプは何ですか?
理想的には、0b形式で文字列を格納したいのですが、これは必須条件ではありません。ディスク上のデータ/サイズが本質的に1:1になるものはどれも素晴らしいでしょう。
BLOBは、1と0( '010101010101')のみからなる文字列が通常のテキストと変わらず、Lバイト+2のコストがかかるため、十分に機能していないようです。BIT()は完璧です最大64ビットに制限されています。
多くのデータ(90%+)は、符号なしBigint内で十分に表現されますが、残りの10%は論理的に分割するよりも洗練されたソリューションを見つけることを奨励します。残りの10%の行にはBLOBを使用するセカンダリ表など)。
ビット単位の操作を許可する任意のタイプのボーナスが追加されますが、それ以外の場合は、MySQLサーバの外部で簡単に実行できます。
この目的で最も効率的なデータ型は何ですか?
私はvarbinaryも調べましたが、[storage requirements](http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html)によると、varbinary 32768)はまだ私のbitstringの1ビットあたり1バイトのコストが...または私はこれが長い文字列のためにできるように最適化されていると期待する必要がありますか? – hexparrot
私はあなたの提案を理解しています:varbinary(4096)の各ビットは、代わりに文字列の8文字を表す文字であり、varbinary文字列を繰り返してこれらの値を決定し、最終ビット文字列を復元します。 これは間違いなく理想的です。なぜなら私はクライアントの計算時間をサーバー上のストレージとアクセス時間に交換したいからです。ありがとうございました! – hexparrot