gpt4 book ai didi

MySQL按位运算,布隆过滤器

转载 作者:IT王子 更新时间:2023-10-28 23:53:32 29 4
gpt4 key购买 nike

我想实现一个 bloom filter使用 MySQL(其他建议的替代方法)。

问题如下:

假设我有一个存储 8 位整数的表,具有以下值:

1: 10011010
2: 00110101
3: 10010100
4: 00100110
5: 00111011
6: 01101010

我想找到所有与此按位与的结果:

00011000

结果应该是第 1 行和第 5 行。

但是,在我的问题中,它们不是 8 位整数,而是 n 位整数。我如何存储它,以及如何查询?速度是关键。

最佳答案

创建一个带有 int 列的表(使用 this link 选择正确的 int 大小)。不要将数字存储为 0 和 1 的序列。

对于您的数据,它将如下所示:

number

154
53
148
38
59
106

你需要找到所有匹配 24 的条目。

然后你可以运行类似的查询

SELECT * FROM test WHERE number & 24 = 24

如果你想避免在你的应用程序中转换成 10 个基数,你可以把它交给 mysql:

INSERT INTO test SET number = b'00110101';

然后像这样搜索

SELECT bin(number) FROM test WHERE number & b'00011000' = b'00011000'

关于MySQL按位运算,布隆过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/360844/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com