疑问在于lmdb键的命名范围。键在lmdb环境中应该是唯一的吗?或者它们在DBI中应该是唯一的?如果位于两个不同的dbis?下,我们可以在相同的lmdb环境中通过相同的键处理两个不同的对象吗?
类推,在SQL中,主键在表中必须是唯一的。因此,不同的表可以具有相同的主键,例如,1,它将根据应用到哪个表来定位不同的记录。在lmdb中,这个用例是否可能被重用,并且它将根据应用到的dbi来定位不同的对象?
analogy2:can-a-uuid-be-reused-in-firestore在防火墙中,我可以将两个不同的对象存储在相同的键下,如果它们位于不同的防火墙集合中。
发布于 2020-01-16 19:32:43
每个DBI都是唯一的,除非在创建DBI:http://www.lmdb.tech/doc/group__mdb__dbi__open.html#gae0626566c2562e9007f5c8c9535bab1a时使用MDB_DUPSORT标志。
在这种情况下,您可能有多个具有相同键的条目。它们将按照相应的值进行排序。这对于构建辅助索引(其中多个记录可以有相同的索引条目)特别有用。
在您的示例中,有两个具有相同UUID的记录,您可以使用排序的重复项,或者在值中存储某种类型的数组结构。
发布于 2020-01-19 11:47:05
有关LMDB的问题应该指向OpenLDAP-技术电子邮件列表。Stackoverflow不是LMDB支持论坛。
LMDB中的命名DB是独立的命名空间。
https://stackoverflow.com/questions/59353602
复制相似问题