Database 如何向LMDB添加压缩支持?

Database 如何向LMDB添加压缩支持?,database,leveldb,lmdb,Database,Leveldb,Lmdb,默认情况下,LMDB不支持压缩。 唯一的缺点。与leveldb相比,LMDB占用了大量磁盘空间 那么,他们是否通过任何压缩方法来减少LMDB的db大小 与添加snappy压缩库类似,(leveldb具有内置snappy压缩支持)您有两个选项: 使用适合您的库压缩值(例如snappy)。这意味着您总是读取完整值(您不必总是这样做,因为该值指向内存映射)。显然,只有当您的值从压缩中受益时,这才有帮助 使用适合您的库压缩数据库文件。我认为,如果您的数据库很少被访问,并且您可以在访问任何东西之前先进行

默认情况下,LMDB不支持压缩。 唯一的缺点。与leveldb相比,LMDB占用了大量磁盘空间

那么,他们是否通过任何压缩方法来减少LMDB的db大小

与添加snappy压缩库类似,(leveldb具有内置snappy压缩支持)

您有两个选项:

  • 使用适合您的库压缩值(例如snappy)。这意味着您总是读取完整值(您不必总是这样做,因为该值指向内存映射)。显然,只有当您的值从压缩中受益时,这才有帮助
  • 使用适合您的库压缩数据库文件。我认为,如果您的数据库很少被访问,并且您可以在访问任何东西之前先进行解压缩,那么这可能是一种有效的方法,但可能不适合大多数用例
不幸的是,lmdb不支持压缩,即它的内部页面,这将提供不同的折衷,如果不修改lmdb本身,我们现在就无法获得这些折衷。关于这一点,可以在这里找到一个非常好的概述: