Django にインポートする大きな CSV ファイルがあります。現時点で、私の計算が正しければ、32 時間以内に完了します。これを高速化することは可能ですか?
~157,000 行と 15 列の CSV ファイルがあります。これを Django モデルに読み込み、MySQL データベースに保存しています。ここで魔法が起こります:
reader = csv.reader(csvFile, delimiter=',', quotechar='"')
for row in reader:
tmpRecord = Employee(
emp_id = row[0], # Primary Key
name = row[1],
# snipped for brevity; other columns assigned
group_abbr = row[14]
)
pieces = string.split(tmpRecord.name.title(), " ")
newName = pieces[1]
try:
newName += " " + pieces[2]
except IndexError:
pass
newName += " " + pieces[0]
tmpRecord.name = newName
tmpRecord.save()
「pieces」チャンクは、「LASTNAME FIRSTNAME MIDDLE」から名前フィールドを取得し、「Firstname Middle Lastname」に変換しています。
これは、新しい従業員と既存の従業員レコードへの変更でデータベースを更新するために、月に約 1 回実行されます。多くの場合、既存のレコードは変更されませんが、いずれか (または複数) のフィールドが変更される可能性があります。save()
各レコードを呼び出すよりも時間がかからない、追加できるチェックはありますか?
現時点では、20 レコードあたり約 15 秒で完了します。これを(実質的に)スピードアップできる方法はありますか?
アップデート:
問題がある場合emp_id
は、テーブルの主キーです。以前の従業員と同じ ID を持つ従業員はいません (退職した従業員を含む)。