Django 过滤器是否会增加每个用户的内存消耗:Python

Do Django filters increases ram consumption per user : Python

我不知道我还能在哪里问这个问题,所以在这里问。我想知道,如果我在使用多个数据库表的页面上施加多个 Django 过滤器,每当用户访问此页面时,这是否会影响 ram 消耗,因为在用户之前,只有过滤后的数据会得到反映。我在基于 ubuntu 的虚拟机上使用带有 postgresql 的 django,如果有任何有助于理解 ram 利用率的文档,请提出建议。

Django 过滤器和查询集是惰性的。它的实际含义是,在 评估 之前,您实际上并没有访问数据库。引用官方 documentation -

Internally, a QuerySet can be constructed, filtered, sliced, and generally passed around without actually hitting the database. No database activity actually occurs until you do something to evaluate the queryset.

因此,进入您的 RAM 的唯一 space 实际上是包含查询集和您的程序的列表。正是在评估查询并从数据库中提取数据时,即(取决于提取的数据量),内存被填满。另外,最好也看看 iterators