使用sys.getsizeof在python中获取数据库大小的正确方法是什么



我有一个名为db的大型leveldb数据库。

tot=0
i=0
for key,value in db.RangeIter():
tot=sys.getsizeof(key)+sys.getsizeof(value)
i=i+1
print(f'total rows:  {i}')
print(f'total size:  {tot}')

给出

total rows:  119113
total size:  143

这真的很奇怪。

所以我写了这个:

keyTot=0
valTot=0
for key,value in db.RangeIter():
keyTot += len(key)
valTot += len(value)
print(f'Total key size:  {keyTot}  Total value size:    {valTot}    Total:  {keyTot+valTot}')

这就产生了

Total key size:  1404729  Total value size:    452897532    Total:  454302261

那么,当我把钥匙递给它时,系统的测量尺寸是多少呢?在迭代119113行之后,它是如何得出这么小的数字的?

您认为这会保持的运行总数吗?

tot=sys.getsizeof(key)+sys.getsizeof(value)

这是而不是,您正在覆盖每次迭代上的tot

最新更新