我有一个项目,它使用 BerkelyDB 作为键值存储,存储多达数亿条小记录。
它的使用方式是将所有值插入数据库,然后使用顺序和随机访问对它们进行迭代,所有这些都来自单个线程。
使用 BerkeleyDB,我可以创建“从不打算保存在磁盘上”的内存数据库。如果数据库足够小以适合 BerkeleyDB 缓存,则它永远不会被写入磁盘。如果它大于缓存,则将创建一个临时文件来保存溢出。此选项可以显着加快速度,因为它可以防止我的应用程序在关闭数据库时将千兆字节的死数据写入磁盘。
我发现 BerkeleyDB 的写入性能太差了,即使在 SSD 上也是如此,所以我想切换到LMDB。但是,根据文档,似乎没有创建非持久数据库的选项。
如果我根本不关心持久性或并发访问,我应该使用什么配置/选项组合来获得 LMDB 的最佳性能?即让它像一个带有临时备份磁盘存储的“内存数据库”?