在数据库(如cassandra)中需要bloom过滤器

bprjcwpo  于 2021-06-09  发布在  Cassandra
关注(0)|答案(1)|浏览(459)

我知道bloom过滤器会告诉您sstable中是否存在某个特定的密钥。我还知道有些索引可以帮助查找哪些sstables有一个键。我的问题是:为什么我们首先需要布鲁姆过滤器?既然索引和bloom过滤器的作用几乎相同,而且与bloom过滤器相比,索引会给出一个确定性的答案,那么为什么我们不能取消索引呢?

8ftvxx2r

8ftvxx2r1#

索引是为每个sstable生成的,因此我们需要为每个sstable读取一个索引,以确定分区的位置等。这是bloom过滤器防止的性能开销,如果数据不在特定的sstable中,它允许跳过sstable的读取。通过bloomfilter进行查找比从磁盘读取索引快得多。

相关问题