Эффективность Django update_or_create
Использует
Model.objects.update_or_create(field1=x, field2=y, defaults=defaults)
медленнее по сравнению со следующим:
qs = Model.objects.filter(field1=x, field2=y)
if qs.exists():
qs.update(defaults=defautls)
else:
defaults.update({'field1': x, 'field2': y})
Model.objects.create(**params)