何兆ものセットがどこかに保存されていると仮定します。これらの各セットのドメインは同じです。また、有限で離散的です。したがって、各セットは、比較的短い長さ (例: 1024) のビット フィールド (例: 0000100111...) として格納できます。つまり、ビットフィールドのビット X は、アイテム X (1024 個の可能なアイテムのうち) が特定のセットに含まれているかどうかを示します。
ここで、クエリに効率的に応答するためのストレージ構造とアルゴリズムを考案したいと思います。つまり、データ ストア内のどのセットが Y をサブセットとして設定したかということです。セット Y 自体はデータ ストアに存在せず、実行時に指定されます。
これを解決する最も簡単な方法は、セット Y のビットフィールドと、データストア内のすべてのセットのビットフィールドを 1 つずつ AND し、AND の結果が Y のビットフィールドと一致するものを選択することです。
どうすればこれをスピードアップできますか? 格納されているすべてのセットのビットフィールドを AND 処理することなく、このクエリを実行できるツリー構造 (インデックス) またはスマート アルゴリズムはありますか?
セットの大規模なコレクションに対するそのような操作を既にサポートしているデータベースはありますか?