最大 LMDB 值大小
Maximum LMDB value size
是否有可以插入到 LMDB 数据库中的值的最大大小?我试图将一个 16GB 的文件插入到一个初始化为 32GB 大小的 LMDB 中,但我得到了这个错误:
File "build_lmdb.py", line 90, in write_entry
txn.put(key.encode('ascii'), value)
lmdb.BadValsizeError: mdb_put: MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED size
有什么办法解决这个问题,或者需要更改任何设置参数吗?
是的,根据 LMDB documentation 的 MDB_val
部分,可以输入数据库的数据项的最大大小为 0xFFFF_FFFF
字节(即 2^32 - 1
或大约 4GiB),因此 16GB/32GB 对于单个数据项来说太大了。
(看起来您正在使用 Python 绑定,但由于这些只是针对 C API 的绑定,因此适用于 C API 的任何限制也应该是相关的)。
是否有可以插入到 LMDB 数据库中的值的最大大小?我试图将一个 16GB 的文件插入到一个初始化为 32GB 大小的 LMDB 中,但我得到了这个错误:
File "build_lmdb.py", line 90, in write_entry
txn.put(key.encode('ascii'), value)
lmdb.BadValsizeError: mdb_put: MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED size
有什么办法解决这个问题,或者需要更改任何设置参数吗?
是的,根据 LMDB documentation 的 MDB_val
部分,可以输入数据库的数据项的最大大小为 0xFFFF_FFFF
字节(即 2^32 - 1
或大约 4GiB),因此 16GB/32GB 对于单个数据项来说太大了。
(看起来您正在使用 Python 绑定,但由于这些只是针对 C API 的绑定,因此适用于 C API 的任何限制也应该是相关的)。