在数据库上执行写操作时,MDB\U MAP U FULL错误

2024-05-17 06:25:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

当我试图按记录的键删除记录时,也出现了相同的错误:

^{pr2}$

谁能解释一下,我做错了什么?在


Tags: keyenv数据库编辑lmdbputvalue错误
1条回答
网友
1楼 · 发布于 2024-05-17 06:25:24

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

也可以使用函数set_mapsize(map_size)对env object增加贴图大小。。您可以在下面的链接中找到这个函数lmdb python docs….为了适应未来数据库的增长,您可以将映射大小设置为1GB之类的大值。。。在

相关问题 更多 >