LMDB中的内容是否总是同时存储在磁盘和内存中



我想使用LMDB的rust实现,但我似乎找不到它是否总是在内存中、磁盘中和反之亦然。我的理由是DB会有一些缓存,任何溢出都会写入磁盘,但由于我在文档中找不到它,我不确定。

另一种情况是LMDB将其磁盘上的内容映射到内存,这适用于少量内容,但不适用于我所想的内容。

有人知道LMDB在这方面是如何运作的吗?

有人知道LMDB在这方面是如何工作的吗?

如果您担心无法对不适合内存的数据集进行操作,那么您可以——LMDB确实可以处理这一问题。您的数据集不限于ram的大小。

LMDB是内存映射的,这是一种允许开发人员在磁盘上读/写数据的技术,就像在内存中一样——操作系统完成了所需的所有繁重工作

LMDB总是同时存储在磁盘和内存中?

整个数据集都在磁盘上。它的某些部分在记忆中。当需要不在内存中的部分时,操作系统会从磁盘中取出,并将其放入进程的内存中,从而将其提供给应用程序

另一种情况是LMDB将其磁盘上的内容映射到内存,这适用于少量内容,但不适用于我所想的内容。

是的,就是这样。

我读到RocksDB支持您正在寻找的用途,同时提供类似的保证。

少量取决于可用的RAM。主要供应商,包括mongodb和wiredtiger后端,但不仅如此,postgresql也在脑海中,强烈建议拥有与工作数据集一样多的内存。

相反,您可以找到使用冷(离线?(对象存储的数据库系统,如rust全文搜索引擎。

相关内容

  • 没有找到相关文章

最新更新