使用python计算lmdb数据库中的记录数

时间:2015-12-22 16:32:38

标签: python lmdb

我使用以下代码打开lmdb数据库:

    lmdb_env = lmdb.open(source_path, readonly=True)

如何计算此数据库中的记录数?

4 个答案:

答案 0 :(得分:6)

我认为应该是这样的:

lmdb_env = lmdb.open(lmdb_file_name, readonly=True)
print lmdb_env.stat()

然后它会打印Jaco粘贴在这里的目录。

答案 1 :(得分:1)

您可以使用event.stat()。它将返回以下字典,其中entries详细说明了此数据库中的记录数:

{'branch_pages': 1040L,
'depth': 4L,
 'entries': 3761848L,
 'leaf_pages': 73658L,
 'overflow_pages': 0L,
 'psize': 4096L}

答案 2 :(得分:1)

我找到了一个使用for循环的简单解决方案。这是:

count = 0
for key, value in lmdb_env.cursor():
        count = count + 1  

但是,我认为使用预定义函数应该有更好的方法。

答案 3 :(得分:0)

    env = lmdb.open('db file path', max_dbs = ' > 0')
    with env.begin() as tx:
        db = env.open_db(b'db name', txn=tx)
        print(env.stat()) 
        print(tx.stat(db)) # this gives stats about one specific db

env.stat()给出主数据库的条目。 tx.stat(db)给出一个命名数据库的条目。