该表包含大约1000万行。
for event in Event.objects.all():
print event
这将导致内存使用量稳步增加到4GB 左右,此时行将快速打印。第一行打印之前的长时间延迟让我感到惊讶——我原以为它几乎会立刻打印出来。
我还尝试了 Event.objects.iterator()
,它的表现也是一样的。
我不明白 Django 加载到内存中的是什么,也不明白它为什么要这么做。我期望 Django 在数据库级迭代结果,这意味着结果将以大致恒定的速率打印(而不是在长时间等待后一次打印所有结果)。
我误会了什么?
(我不知道这是否相关,但我正在使用 PostgreSQL。)