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()

Antworten auf die Frage(4)

Ihre Antwort auf die Frage