I open a lmdb
database using this code:
lmdb_env = lmdb.open(source_path, readonly=True)
How can I count the number of records in this database?
I think it should be like this:
lmdb_env = lmdb.open(lmdb_file_name, readonly=True)
print lmdb_env.stat()
Then it prints the directory that Jaco pasted here.
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()
gives entries of the main database. tx.stat(db)
gives entries of one named database.
You can use event.stat()
. It will return the following dictionary with entries
detailing the number of records in this database:
{'branch_pages': 1040L,
'depth': 4L,
'entries': 3761848L,
'leaf_pages': 73658L,
'overflow_pages': 0L,
'psize': 4096L}
I found a simple solution using for
loop. Here it is:
count = 0
for key, value in lmdb_env.cursor():
count = count + 1
However, I think there should be a better way using pre-defined function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With