ブール値を持つ多くの(10〜40)変数があるPostgresqlデータベースを作成しています。適度な数の更新と多数の複数列検索を考慮して、このデータを保存するための最良の方法を理解したいと思います。
30ほどのブール列を作成し、必要に応じて複数列のインデックスを作成するのは非常に簡単なようです。あるいは、誰かがすべてのブール値を組み合わせたビット文字列を作成することを提案しました。2番目のオプションの方が速いはずですが、他の人がオンラインで出した答えは矛盾しているようです(以下を参照)。
どんな提案や説明も役に立ちます。データは数千万行ですが、それより大きくはありません。selectはデータの1 / 100〜1/4のどこかに戻ると思います。
https://stackoverflow.com/questions/14067969/optimized-sql-using-bitwise-operator
アップデート:
変数が数個より多く(別々の列を使用する必要がある場合)、33個より少ない場合(ビット文字列に切り替える場合)にintまたはbigintを使用することを提案するリソースが1つ見つかりました。これは、検索のしやすさよりもストレージのサイズに動機付けられているようです。
https://dba.stackexchange.com/questions/25073/should-i-use-the-postgresql-bit-string