【问题标题】:How to get a queryset estimated size on the DB?如何获得数据库上的查询集估计大小?
【发布时间】:2017-05-09 03:46:44
【问题描述】:

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

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

【问题讨论】:

  • 投票支持“过于宽泛”的问题的人 - 为什么您认为这个问题过于宽泛?

标签: django database django-1.10


【解决方案1】:

看起来一个很好的估计是去查询集中的每个对象,遍历 __dict__ 值,并在每个对象上调用 __sizeof__

假设查询集是qs

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2016-02-21
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多