タグ

ブックマーク / feiz.hateblo.jp (1)

  • djangoのQuerySetで大量のデータを扱う - logiqboard

    メモリに載り切らないような大量のデータを扱うときは何かしらの工夫が必要で、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

    djangoのQuerySetで大量のデータを扱う - logiqboard
    kkotyy
    kkotyy 2017/08/03
    大量データはchunkに分割しろと。mysqldumpとかpg_dumpを使える場面では使った方が良さそう。。
  • 1