将LMDB复制到另一个LMDB会减小文件大小

时间:2016-03-20 18:05:22

标签: python caffe lmdb

将现有lmdb(Trying to solve this problem)中的数据混洗。我检索了数据,洗牌并写回新的lmdb。但是当我检查lmdb文件大小时,它会减少。旧的lmdb文件大小:3792896但新的lmdb文件大小:2314240。

Python代码Inplemented:

import lmdb
from random import shuffle

lst_data = [];

env = lmdb.open('val_3', readonly=True);
with env.begin() as txn:
    cursor = txn.cursor();
    for key, value in cursor:
        innerlst_data = [key,value];
        lst_data.append(innerlst_data);

shuffle(lst_data);

env1 = lmdb.open('mod_val_3');
with env1.begin(write=True) as txn1:
    for i in range(len(lst_data)):
        str_id = '{:08}'.format(i);
        txn1.put(str_id.encode('ascii'),lst_data[i][1]);

代码参考取自here。 任何建议/想法都会有所帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用mdb_stat查看数据库中的条目数。这应该确认您的副本是否正常工作。