メモリに載り切らないような大量のデータを扱うときは何かしらの工夫が必要で、djangoのQuerySetも例外ではありません。 簡単な例として、以下のコードをメモリが多くない環境で実行すると、ループに入る前にメモリをドカ食いして落ちます。 many_many_objs = MyDBLog.objects.all() # 1億件ぐらいあるとする for log in many_many_objs: print(log.body) どうする 件数が大きくなりえるQuerySetを扱う場所では、QuerySetを分割して扱うようにします。 QuerySetはスライスが使えるので、うまく活用しましょう。 def chunked(queryset, chunk_size=1000): start = 0 while True: chunk = queryset[start:start + chunk