假设我们在某处存储了数万亿个集合。这些集合中的每一个的域都是相同的。它也是有限和离散的。因此,每个集合都可以存储为长度相对较短(例如:1024)的位字段(例如:0000100111...)。也就是说,位域中的位 X 指示项目 X(1024 个可能项目中的)是否包含在给定集合中。
现在,我想设计一种存储结构和一种算法来有效地回答查询:数据存储中的哪些集合将 Y 设置为子集。Set Y 本身并不存在于数据存储中,而是在运行时指定的。
现在解决这个问题的最简单的方法是将集合 Y 的位域与数据存储中的每个集合的位域一个一个地与,选择 AND 结果与 Y 的位域匹配的位域。
我怎样才能加快速度?是否有树结构(索引)或一些智能算法可以让我执行此查询而不必对每个存储集的位域进行 AND 运算?
是否有数据库已经支持对大型集合进行此类操作?