gpt4 book ai didi

python - 对数据库执行写操作时MDB_MAP_FULL错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:16 26 4
gpt4 key购买 nike

我正在尝试在我自己的 lmdb 数据库中为 python 中的 caffe 编辑标签:

def WriteLMDB(lmdbpath):
lmdb_env = lmdb.open(lmdbpath)
lmdb_txn = lmdb_env.begin(write=True)
lmdb_cursor = lmdb_txn.cursor()
datum = caffe_pb2.Datum()
for key, value in lmdb_cursor:
datum.ParseFromString(value)
datum.label = 100
lmdb_txn.put(key, datum.SerializeToString())
lmdb_txn.commit

但是当我运行它时,出现错误:

mdb_put: MDB_MAP_FULL: Environment mapsize limit reached

当我试图通过它的键删除记录时,我遇到了同样的错误:

lmdb_txn.delete(key)

有人可以解释一下我做错了什么吗?

最佳答案

问题是当您执行写入操作时,您的环境的当前映射大小无法适应数据库的增长。 lmdb 提供的默认 map 大小较小。因此,在打开环境时,您必须指定更大的 map 大小...使用 lmdb.open(path, map_size = size) 其中 size 包含环境的 map 大小..

您还可以使用 env 对象上的函数 set_mapsize(map_size) 来增加 map 大小。您可以在以下链接 lmdb python docs 中找到此函数。 ....为了适应数据库的 future 增长,您可以将 map 大小设置为较大的值,例如 1GB...

关于python - 对数据库执行写操作时MDB_MAP_FULL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40382460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com