使用 python 计算 lmdb 数据库中的记录数
Count number of records in lmdb databse with python
我使用以下代码打开一个 lmdb
数据库:
lmdb_env = lmdb.open(source_path, readonly=True)
如何统计这个数据库中的记录数?
您可以使用 event.stat()
。它将 return 以下字典 entries
详细说明此数据库中的记录数:
{'branch_pages': 1040L,
'depth': 4L,
'entries': 3761848L,
'leaf_pages': 73658L,
'overflow_pages': 0L,
'psize': 4096L}
我找到了一个使用 for
循环的简单解决方案。这是:
count = 0
for key, value in lmdb_env.cursor():
count = count + 1
不过,我认为使用预定义函数应该有更好的方法。
我觉得应该是这样的:
lmdb_env = lmdb.open(lmdb_file_name, readonly=True)
print lmdb_env.stat()
然后打印粘贴到这里的目录。
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)
给出一个命名数据库的条目。
我使用以下代码打开一个 lmdb
数据库:
lmdb_env = lmdb.open(source_path, readonly=True)
如何统计这个数据库中的记录数?
您可以使用 event.stat()
。它将 return 以下字典 entries
详细说明此数据库中的记录数:
{'branch_pages': 1040L,
'depth': 4L,
'entries': 3761848L,
'leaf_pages': 73658L,
'overflow_pages': 0L,
'psize': 4096L}
我找到了一个使用 for
循环的简单解决方案。这是:
count = 0
for key, value in lmdb_env.cursor():
count = count + 1
不过,我认为使用预定义函数应该有更好的方法。
我觉得应该是这样的:
lmdb_env = lmdb.open(lmdb_file_name, readonly=True)
print lmdb_env.stat()
然后打印
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)
给出一个命名数据库的条目。