Quand utiliser ou non iterator () dans le django ORM

C'est à partir de la django docs sur le queryset iterator() méthode:

Un QuerySet généralement les caches de ses résultats à l'interne, de sorte que l'exposition répétée à des évaluations
ne se traduisent pas dans les requêtes supplémentaires. En revanche, iterator() va lire les résultats
directement, sans faire la mise en cache à la QuerySet niveau (en interne, le défaut
t itérateur appels iterator() et des caches de la valeur de retour). Pour un QuerySet qui
renvoie un grand nombre d'objets que vous avez seulement besoin d'accéder à la fois,
cela peut résultats dans de meilleures performances et une réduction significative de la mémoire.

Après la lecture, je suis toujours confus: La ligne à propos de l'augmentation des performances et de la mémoire de réduction suggère que nous devrions utiliser le iterator() méthode. Quelqu'un peut-il donner quelques exemples de bonnes et de mauvaises affaires iterator() utilisation?

Même si les résultats de la requête ne sont pas mis en cache, si vraiment ils voulaient accéder aux modèles plus d'une fois, ne pouvez pas quelqu'un juste faire ce qui suit?

saved_queries = list(Model.objects.all().iterator())

source d'informationauteur Lucas Ou-Yang