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

时间:2018-08-30 10:29:05

标签: python django postgresql filter ram

我不知道我还能在哪里问这个问题,因此在这里问。我想知道,如果我在使用多个数据库表的页面上强加多个Django过滤器,那么每当用户访问该页面时,都会影响ram的消耗,因为在此之前,只有用户过滤的数据会得到反映。我在基于ubuntu的VM上将django与postgresql一起使用,如果有任何文档可以帮助您了解ram的利用率,请提出建议。

1 个答案:

答案 0 :(得分:2)

Django过滤器和查询集是惰性的。实际上,这意味着直到您评估它们才真正访问数据库。引用官方documentation-

  

在内部,可以构造,过滤,切片和一般传递QuerySet而不实际访问数据库。除非您执行某些操作来评估查询集,否则实际上不会发生数据库活动。

因此,RAM中唯一占用的空间实际上是包含queryset和程序的列表。这是评估查询并从数据库中提取数据的时间,即何时(取决于提取的数据量),内存已满。另外,最好还是看看iterators