La table en question contient environ dix millions de lignes.
for event in Event.objects.all():
print event
Cela entraîne l'utilisation de la mémoire pour augmenter de façon constante à 4 GO ou plus, à quel point les lignes d'impression rapide. Le long délai avant la première ligne imprimée me surpris – je m'attendais à imprimer presque instantanément.
J'ai aussi essayé d' Event.objects.iterator()
qui se comportaient de la même manière.
Je ne comprends pas ce que Django est le chargement dans la mémoire, ou pourquoi il fait cela. Je m'attendais à Django pour itérer sur les résultats au niveau base de données, ce qui voudrais dire que les résultats pourraient être imprimé à environ un taux constant (plutôt que tout à la fois après une longue attente).
Qu'ai-je mal compris?
(Je ne sais pas si c'est pertinent, mais je suis en utilisant PostgreSQL.)