Considerare l'utilizzo di django-bulk-update
trovato here on GitHub.
Installare: pip install django-bulk-update
Implementare: (codice preso direttamente dal file Leggimi progetti)
from bulk_update.helper import bulk_update
random_names = ['Walter', 'The Dude', 'Donny', 'Jesus']
people = Person.objects.all()
for person in people:
r = random.randrange(4)
person.name = random_names[r]
bulk_update(people) # updates all columns using the default db
Aggiornamento: Come Marc sottolinea nei commenti questo non è adatto per l'aggiornamento migliaia di righe alla una volta. Anche se è adatto per piccoli lotti da 10 a 100's. La dimensione del batch giusto per te dipende dalla tua CPU e dalla complessità della query. Questo strumento è più simile a una carriola rispetto a un autocarro con cassone ribaltabile.
fonte
2015-02-16 22:42:27
Si potrebbe cercare inserto batch. Dai un'occhiata a http://stackoverflow.com/questions/4294088/accelerate-bulk-insert-using-djangos-orm – Pramod
Non mi piace inserire nuovi dati - basta aggiornare esistenti. – Thomas
Forse con l'aiuto di select_for_update? https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.select_for_update –