看起来我在使用大型数据集时遇到了问题。假设我有以下情况:
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)通过发送提交/回滚手动控制事务。这里不确定......它往往会给我完整性错误。
请告知..