leveldb - LMDB 是否支持多个键到相同值的映射?

标签 leveldb lmdb

是否可以将多个键映射到同一个值?如果没有,是否有解决此功能的方法?

最佳答案

这是不可能的。我使用的一种解决方法是让第二个键上的值成为指向主键的指针。也就是说,第二个键的值主键。

特别是,我制作了一个二级键表(或 lmdb 中的“命名数据库”),其中所有 都是主表中的主键。如果您进一步研究其他数据库,这正是它们实现索引的方式。


例如

Data table:
    key: 72E13E60-85A6-4191-A187-F6FA5D3F0975
    value: {
       "surrogate-key": "72E13E60-85A6-4191-A187-F6FA5D3F0975",
       "name": "Foo Widget",
       "location": "Atlantis Mall",
       "last-value": 892
    }
Name table:
    key: "Foo Widget",
    value: "72E13E60-85A6-4191-A187-F6FA5D3F0975"
Location table:
    key: "Atlantis Mall",
    value: "72E13E60-85A6-4191-A187-F6FA5D3F0975"

关于leveldb - LMDB 是否支持多个键到相同值的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53637169/

相关文章:

python - 如何使用 python 计算和枚举 lmdb 中的键?

android - 错误 : use of undeclared identifier 'PTHREAD_MUTEX_ROBUST' cargo build liblmdb-sys for aarch64-linux-android target

python - Caffe & python,读取标签结构复杂的LMDB

crc - 为什么 LevelDB 和 RocksDB 需要 `masked CRC32`

ios - leveldb语义错误,连续从podfile接收错误

go - leveldb-go 示例,文档

node.js - LevelDB with Node 在创建时抛出错误

lmdb - 根据键顺序对 LMDB 文件进行排序以进行顺序访问

database - LMDB 随机写入大数据真的很慢 (~1MB/s)