Django - Save () -basierte Transaktionen kurz halten
Als Django-Modell save () -Methoden sind nicht faul und da es allgemein ratsam ist, Transaktionen kurz zu halten, sollten Speichervorgänge vorzugsweise auf das Ende von Transaktionsblöcken verschoben werden?
Würde beispielsweise das Codebeispiel B eine Transaktion kürzer als das Codebeispiel A unten offen halten?
Codebeispiel A:
from django.db import transaction
from my_app.models import MyModel
@transaction.commit_on_success
def model_altering_method():
for inst in MyModel.objects.all()[0:5000]:
inst.name = 'Joel Spolsky'
# Some models independent time consuming operations...
inst.save()
Codebeispiel B:
from django.db import transaction
from my_app.models import MyModel
@transaction.commit_on_success
def model_altering_method():
instances_to_save = []
for inst in MyModel.objects.all()[0:5000]:
inst.name = 'Joel Spolsky'
# Some models independent time consuming operations...
instances_to_save.append(inst)
for inst in instances_to_save:
inst.save()