0

サイトに管理パネルがあります。1 回限りの初期データ ロードを実行したいと考えており、Web ページにボタンを作成しました。このボタンは、最終的に次の関数に到達する http 要求を生成します。

def load_model(dbf_file, model, create_fn):
    db = dbf_reader.read_database(dbf_file)
    data = []
    for record in db:           
        data.append(create_fn(record))
        if len(data) == 300:
            model.objects.bulk_create(data)
            data = []

この関数は .DBF ファイルを読み込み、一度に 1 つずつレコードを読み取ります。それらを配列にバッチ処理し、bulk_create を使用して一度に多くのレコードを挿入します。私は約 5mil のレコードを持っていますが、Django は一貫して 4mil で死んでいます。これは、メモリが 1 ギガしかない比較的小さなサーバーです。Django にガベージ コレクションやリソースの解放をさせるためにできることはありますか?

4

0 に答える 0