首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LMDB中的子库是否有限制?

问LMDB中的子库是否有限制?
EN

Stack Overflow用户
提问于 2015-03-09 09:00:25
回答 2查看 1.9K关注 0票数 6

在这里发帖,因为我找不到任何lmdb键值存储的论坛。

子数据库是否有限制?并发打开的子数据库的合理数量是多少?

我希望有大约200个数据库,这看起来很多,显然表明我的模型是错误的。我想可以在key本身中重新建模和嵌入每个db的id,只保留一个db,但这样我就有了更长的key,而且如果需要的话,我也不能删除数据库。

不过,我感兴趣的是,LMDB是否已经为键使用了某种内部前缀。任何如何解决这个问题的建议都很感谢。

EN

回答 2

Stack Overflow用户

发布于 2015-03-16 05:52:27

如果您阅读了mdb_env_set_maxdbs的文档。

目前,中等数量的插槽是便宜的,但大量的插槽变得昂贵:每个事务7-120个单词,并且每个mdb_dbi_open()对打开的插槽进行线性搜索。

http://www.lmdb.tech/doc/group__mdb.html#gaa2fc2f1f37cb1115e733b62cab2fcdbc

最好的方法是测试函数调用mdb_dbi_open的性能,看看它是否可以接受。

票数 3
EN

Stack Overflow用户

发布于 2016-09-22 06:03:46

不必每次都调用mdb_dbi_open,而是保留您自己的映射,其中包含从mdb_dbi_open返回的数据库句柄的数据库名称。在程序的生命周期中重用这些句柄。这将允许您在一个环境中拥有多个数据库,并避免使用mdb_dbi_open带来的开销。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28933784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档