Używam Django z backendem sqlite, wydajność zapisywania jest problemem. Na etapie mogę ukończyć „właściwą” bd, ale na razie utknąłem z sqlite. Myślę, że moje problemy z wydajnością zapisu są prawdopodobnie związane z faktem, że tworzę dużą liczbę wierszy i prawdopodobnie za każdym razem, gdy zapisuję () jeden, blokuje, odblokowuje i synchronizuje bd na dysku.
Jak mogę agregować dużą liczbę wywołań save() w jednej operacji na bazie danych?
1 odpowiedź
W rzeczywistości jest to łatwiejsze niż myślisz. Możesz skorzystać z transakcji w Django.
from django.db.transaction import transaction.atomic
@commit_on_success
def lot_of_saves(queryset):
for item in queryset:
modify_item(item)
item.save()