实际上,每当我搜索一些NoSQL数据库系统中使用的键值存储时,我都会遇到这样的定义:“每个值都有自己的唯一键,值根据它们的键来存储。”
但是,我无法理解这个数据库系统的子结构。
我们是否可以说键值存储是c++中的哈希映射,并且这些值是否可以是原始类型或对象?
发布于 2018-01-17 11:09:39
这取决于你所说的键值商店的类型。
例如,以gdbm为例,它非常类似于C++中的hasmap,只是键和值必须是字节。如果要存储更复杂的数据结构,则必须序列化它们。在这种数据库中,使用AFAIK的模式不多。
还有有序的键值存储区,其中字典键是使用词典顺序按键排序的。在这种情况下有各种各样的模式。它们都依赖于键组合,即以一种利用键值存储和快速下一步/prev查找提供的前缀搜索的方式构建密钥。它还依赖于为单个记录创建多个键值对。
有关该主题的更多信息,请参见我的答案:
尽管如此,当使用wiredtiger键值存储时,所有这些模式都变得更加显式,请参阅线老虎文档中的架构、列、列组、索引和投影。
https://stackoverflow.com/questions/47998234
相似问题