私はdjango querysetから返された大きなデータセットを持っており、それを反復したいと思います。クエリーセットを直接反復処理するか、結果を変数に格納してそれを反復処理する必要がありますか?djangoクエリセットまたはその変数に対して反復処理を行うべきですか?
for item in Model.objects.all():
do_something()
または
results = item in Model.objects.all():
for item in results:
do_something()
クエリセットを反復処理の場合のように、結果はメインメモリに格納される場所を私の知る限りでは、変数は、ヒープに格納し、その方が安全です。
どのスペースとスピードで効率的ですか?
両方とも同じですが、変数を使用するとコードが1行だけ増えます。すべての場合はメモリに保存され、2回目はデータベースにクエリが実行されません。あなたが理解できるように、 – Exprator