【发布时间】:2013-06-21 19:59:04
【问题描述】:
我认为这是我自己的 django 代码中的一个错误,但只是想确定一下。
数据库中的行数或模型数是否会影响我的 django RAM 消耗? 假设我们有一个名为 Model 的 mysql 表。 我的 django 代码只有这种形式的惰性查询集评估:
Models.objects.filter().blah().blah()[:SOME_NUMBER]
SOME_NUMBER 保持不变,因此被带到内存中的数据也是不变的,并且与“模型”的总数无关(或者至少我希望如此)。但是,在我的进程选项卡中,随着我的模型数量增加,RAM 也会增加.. 以至于它变得太高了!
这是故意的还是其他原因导致的? 除了 queryset - db 调用,还有什么会导致高内存消耗和泄漏?如果没有别的,我的代码中一定有某个地方我正在查询一堆模型,我不知道。我的 DJANGO_DEBUG 设置已关闭。
谢谢。
【问题讨论】:
-
您的设置中有 DEBUG=True 吗?
-
不,它已关闭。我知道这会导致内存泄漏。
-
你是如何运行 django 的?你的设置是什么?
-
使用 MySql、Mod_Wsgi、apache2 以及静态资源的 nginx 反向代理运行它。我的整个应用程序有 6-8 个查询,只是有一堆模型。但无论如何,这不应该意味着 RAM 使用率会上升,不是吗?因为在我们查询之前,所有模型数据都存储在磁盘内存中。