Le tableau en question contient environ dix millions de lignes.
for event in Event.objects.all():
print event
Cela entraîne une augmentation constante de l'utilisation de la mémoire jusqu'à 4 Go environ, auquel cas les lignes s'impriment rapidement. Le long délai avant l'impression de la première ligne m'a surpris - je m'attendais à ce qu'il s'imprime presque instantanément.
J'ai aussi essayé Event.objects.iterator()
qui se comportait de la même manière.
Je ne comprends pas ce que Django charge en mémoire ni pourquoi il le fait. Je m'attendais à ce que Django itère à travers les résultats au niveau de la base de données, ce qui signifierait que les résultats seraient imprimés à peu près à un rythme constant (plutôt que tous en même temps après une longue attente).
Qu'est-ce que j'ai mal compris?
(Je ne sais pas si c'est pertinent, mais j'utilise PostgreSQL.)