django:插入或更新大型对象列表的好方法

时间:2014-07-19 17:50:01

标签: django django-orm

看起来我在使用大型数据集时遇到了问题。假设我有以下情况:

1)带有产品的大型csv(200K +行)(每个都带有独特的sku)与发送请求一起发送 2)对于每个项目,我需要检查它是否已经在数据库中(我使用的是get_or_create) 3)如果对象存在,我会更新它,否则我在数据库中创建一个新实体。

代码如下所示:

for csv_item in csv_products:
    product = Products.objects.get_or_create(sku=csv_item.sku)
    product.price = csv_item.price # Here I update all fields from csv_item
    product.save()

问题 此代码为数据库创建了令人难以置信的命中。查询量惊人,执行时间也是......

我在尝试什么: 1)批量创建django的方法。为什么它不能很好地工作:我不仅需要创建,还需要更新。因此,检查对象是否存在于第一步中断bulk_create ... 2)通过发送提交/回滚手动控制事务。这里不确定......它往往会给我完整性错误。

请告知..

0 个答案:

没有答案