如何在DB上获取查询集估计大小?

时间:2016-12-23 12:18:44

标签: django database django-1.10

我每个月都在运行一个清理过程,从数据库中删除旧的不必要的对象。有没有办法估算从清理过程中获得的文件大小?

我正在使用sqlite3和PostgreSQL数据库,但当然首选独立于数据库的解决方案。

1 个答案:

答案 0 :(得分:0)

看起来好的估计是转到查询集中的每个对象,迭代__dict__值,并在每个对象上调用__sizeof__

鉴于查询集为qs

total_est_size = sum([v.__sizeof__() for rec in qs for v in rec.__dict__.values()])

当然,这是一个非常基本的估算,没有考虑到许多复杂的实现。