c - 数组上的 bool 搜索

标签 c database algorithm database-design

我有多个数组,大约有 100 个可能的值,即:

a[0] = (a, b, c, d)
a[1] = (a, e)
a[2] = (d, f, g)

我想快速返回哪些数组包含 (a || b) && (d || e)

在这个例子中,0 和 1

我在考虑按位运算……比如用“1111”表示“abcd”; “广告”由“1001”等。然后我可以用按位或来解决“或”,然后检查两者是否非零

谁能想出更好的解决方案?这个不是很实用,因为它似乎不是很容易升级

是否有任何 DBMS 可以快速做到这一点?我试过 mongodb,但他们似乎还没有添加“$and”功能(文档说它是 1.9.1 版本,但我只能下载 1.9.0,而且它不稳定)

我想这是一个“ bool 搜索”,类似于谷歌一直在做的……所以我猜有比这更好的方法(可能不是那么快,但更可升级)

最佳答案

是的,按位解决方案对此非常有效。是的,一些数据库包含这样的功能,通常称为位图列(或位图索引,视情况而定)。通常的建议是将其应用于基数相对较低的列(即可能值的数量相当少,例如性别)。

关于c - 数组上的 bool 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825287/

相关文章:

c - Switch 语句未编译

c - C 函数中的段错误

MySQL - 使用迭代整数更新选择

r - 在 R 中使用 KNN (k = 2) 时不断对小数据集进行不同的预测

algorithm - 在 OpenCL 中查找 float 组最大值的快速方法

c - malloc 和 free 问题

c - 识别 C 上的线程

java - 连接过多错误 : Hibernate

MySQL: `REFERENCES` 与 `FOREIGN KEY` + `REFERENCES`

有向加权边图及其权重的算法