在 Django 项目中,我每天从外部 API 刷新数万行数据。问题是,由于我不知道数据是新的还是只是更新,我无法进行bulk_create操作。
注意:有些行,或者很多行,实际上并没有每天更改,但我不知道哪些或多少行提前。
所以现在我这样做:
for row in csv_data:
try:
MyModel.objects.update_or_create(id=row['id'], defaults={'field1': row['value1']....})
except:
print 'error!'
Run Code Online (Sandbox Code Playgroud)
它需要......永远!每秒一两行,最大速度,有时每行几秒钟。我刷新的每个模型都有一个或多个其他模型通过外键连接到它,所以我不能只是将它们全部删除并每天重新插入。我无法解决这个问题——我怎样才能显着减少数据库操作的数量,以便刷新不会花费数小时和数小时。
谢谢你的帮助。