如何为LMDB添加压缩支持?

时间:2016-10-14 09:07:54

标签: database leveldb lmdb

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

他们以任何方式通过任何压缩方法减少LMDB的db大小?

喜欢添加snappy压缩库,(leveldb具有内置的snappy压缩支持)

1 个答案:

答案 0 :(得分:3)

您有两种选择:

  • 使用适合您的任何库(例如snappy)压缩值。这意味着您始终读取完整值(您不必总是这样做,因为值指向内存映射)。显然,只有当您的价值受益于压缩时,这才有用。
  • 使用适合您的任何库压缩数据库文件。我想这可能是一个有效的方法,如果你有很少访问的数据库,你可以在访问任何东西之前首先解压缩,但可能不适合大多数用例。

不幸的是lmdb并不支持压缩它的内部页面,这会提供我们现在无法修改lmdb本身所能获得的不同权衡。可以在此处找到相当好的概述:https://banksco.de/p/lmdb-the-leveldb-killer.html