1

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

那么他们有什么方法可以通过任何压缩方法减少 LMDB 的数据库大小吗?

就像添加 snappy 压缩库一样,(leveldb 有内置 snappy 压缩支持)

4

1 回答 1

3

你有两个选择:

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

不幸的是,lmdb 不支持压缩,即它的内部页面,这将提供不同的权衡,我们现在无法在不修改 lmdb 本身的情况下获得这些权衡。可以在这里找到一个很好的概述:https ://banksco.de/p/lmdb-the-leveldb-killer.html

于 2016-11-10T12:25:25.603 回答