В рассматриваемой таблице содержится примерно десять миллионов строк.
for event in Event.objects.all():
print event
Это приводит к постоянному увеличению использования памяти до 4 ГБ или около того, после чего строки быстро печатаются. Длительная задержка перед печатью первой строки удивила меня - я ожидал, что она будет печататься почти мгновенно.
Я также пробовал Event.objects.iterator()
, который вел себя одинаково.
Я не понимаю, что Django загружает в память или почему это делает. Я ожидал, что Django будет перебирать результаты на уровне базы данных, что означает, что результаты будут напечатаны примерно с постоянной скоростью (а не сразу после длительного ожидания).
Что я неправильно понял?
(я не знаю, имеет ли значение это значение, но я использую PostgreSQL.)