Omawiana tabela zawiera około dziesięciu milionów wierszy.
for event in Event.objects.all():
print event
Powoduje to, że użycie pamięci stale rośnie do około 4 GB, w którym to momencie wiersze są drukowane szybko. Zaskoczyło mnie długie opóźnienie przed wydrukowaniem pierwszego wiersza - spodziewałem się, że wydrukuje się niemal natychmiast.
Próbowałem też, Event.objects.iterator()
który zachowywał się w ten sam sposób.
Nie rozumiem, co Django ładuje do pamięci ani dlaczego to robi. Spodziewałem się, że Django przejrzy wyniki na poziomie bazy danych, co oznaczałoby, że wyniki będą drukowane z mniej więcej stałą szybkością (a nie wszystkie naraz po długim oczekiwaniu).
Co ja źle zrozumiałem?
(Nie wiem, czy jest to istotne, ale używam PostgreSQL).