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