在这里发布,因为我找不到lmdb键值存储的任何论坛。
子数据库有限制吗?可以同时打开多少个子数据库?
我想拥有约200个数据库,这似乎很多,并且清楚地表明我的模型是错误的。我想可以将每个数据库的ID重构并嵌入到密钥本身中,并只保留一个数据库,但是我的密钥更长,而且如果需要,也无法删除数据库。
我很感兴趣,但是LMDB是否已经对密钥使用了某种内部前缀。任何建议,以解决该问题表示赞赏。
小智 5
不要每次都调用 mdb_dbi_open,而是保留自己的数据库名称到从 mdb_dbi_open 返回的数据库句柄的映射。在程序的整个生命周期内重复使用这些句柄。这将允许您在一个环境中拥有多个数据库并防止 mdb_dbi_open 的开销。
如果您阅读 mdb_env_set_maxdbs 的文档。
目前,适度数量的插槽很便宜,但数量过多会变得昂贵:每个事务 7-120 个字,并且每个 mdb_dbi_open() 对打开的插槽进行线性搜索。
http://www.lmdb.tech/doc/group__mdb.html#gaa2fc2f1f37cb1115e733b62cab2fcdbc
最好的了解方法是测试函数调用 mdb_dbi_open 的性能,看看是否可以接受。
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |