LMDB是运作方式

问题描述 投票:0回答:1

我刚开始用LMDB替换一些SQL表,LMDB是用C(lmdb link)实现的基本键值存储。

在移植期间,我遇到了一些理论问题:

  1. DB使用游标而不是键入的键,我认为它是因为键可以根据需求(blob)变化,是这样吗?
  2. LMDB将数据库映射到内存中,只有在事务提交时才会同步到文件。如何在多进程环境中保持完整性?所有用户之间共享内存吗?
  3. 此外,当我尝试从数据库中删除项目(使用mdb_del)时,它没有删除它,只是将其标记为已删除。所以看起来DB文件永远不会变小,因为没有内存重用。这种方法有什么好处? 也许有一个消息来源详细解释它是如何工作的?
c database lmdb
1个回答
1
投票
  1. 您可以通过键“where Key = k”进行搜索。光标可让您找到第一个,最后一个,下一个或上一个键。光标还允许您搜索“其中Key> = k”。 (我发现它很有用)
  2. LMDB支持一个编写器和许多读者。它适用于我(Visual Studio使用lmdb.v140)。我发现唯一能够做到这一点的无服务器数据库。
  3. N / C
© www.soinside.com 2019 - 2024. All rights reserved.