gpt4 book ai didi

leveldb - 如果值为空并且只有一个键,leveldb 是否存在结构问题?

转载 作者:行者123 更新时间:2023-12-02 14:16:19 25 4
gpt4 key购买 nike

我正在研究一种设计,其中数据的二级索引将使用键中的所有信息构建,而在值方面不需要任何信息。这可能会导致问题吗?

不是技术上是否可以有空白值。是否存在任何结构后果,例如:添加排序键可能会导致某些树结构不平衡? (我并不是说 leveldb 使用树,只是想打个比方;-))

即:说“主记录”看起来像(空值作为分隔符)

  • key = uniqueTableID\0 uniqueRowID
  • 值 = 一些字段的集合

典型单值字段的二级索引如下所示:

  • key = uniqueFieldID\0 keyValue\0 uniqueRowID

允许通过部分键 [uniqueFieldID\0 keyValue] 进行迭代,并且如果主记录被删除或键值发生更改,还可以轻松找到这些键并删除它们,从主记录的 uniqueRowID 进行返回。因此,可能有多个以相同 uniqueRowID 结尾的键值,但对于以 uniqueFieldID 开头并以 uniqueRowID 结尾的特定组合来说,只能有一个键

唯一的事情是我不需要将值放入该对的值一侧。

我对这个概念设计非常满意,只是检查一下是否有人能发现其中的漏洞。例如,它是否会扭曲 leveldb 内部结构并导致性能问题。

我预计在一个特定的应用程序中会有数以万计的此类 key 。

作为我们可能想要存储的值的示例,文本字段的辅助单词索引可能如下所示:

  • key = uniqueFieldID\0 keyValue\0 GUID
  • 值 = 单词出现次数的计数,或者如果扫描大 blob 的成本较高,则可能是偏移量列表

最佳答案

LevelDB中的键和值是不透明数组,快速查看constructor of a Slice的文档显示如何创建空切片:

// Create an empty slice.
Slice() : data_(""), size_(0)

这对于没有任何值数据的情况非常有用。

关于leveldb - 如果值为空并且只有一个键,leveldb 是否存在结构问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762509/

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