Django bulk_create Funktion Beispiel
Ich versuche zu verstehen bulk_create in Django
Dies war meine ursprüngliche Abfrage, die ich versuche zu konvertieren:
for e in q:
msg = Message.objects.create(
recipient_number=e.mobile,
content=batch.content,
sender=e.contact_owner,
billee=batch.user,
sender_name=batch.sender_name
)
Bedeutet das, dass Sie folgende (weiter unten) wird loop und erstellen alle Einträge drücken Sie dann die Datenbank? Ist das richtig?
msg = Message.objects.bulk_create({
Message (
recipient_number=e.mobile,
content=batch.content,
sender=e.contact_owner,
billee=batch.user,
sender_name=batch.sender_name
),
})
- Sie sind fast da. Nicht erstellen die Objekte in der Schleife. Nur tun
Message(...)
stattMessage.objects.create(...)
- würde Es nicht auslösen einer Datenbank aufrufen. Setzen Sie in eine Liste, und übergeben Sie die Liste inbulk_create
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den zweiten code in der Frage erstellen Sie ein einzelnes Objekt, da es eine Reihe mit einem Message-Objekt.
Erstellen Sie mehrere Objekte passieren mehrere Message-Objekte zu bulk_create. Zum Beispiel:
Message
Objekt). CPU-Auslastung wäre ähnlichcreate
version. I/O-Auslastung deutlich weniger, alscreate
version.bulk_create
ist kein tool für diesen Zweck, wie der name vermuten lässt. Du solltest besser finden, dbms-spezifische Funktionen: z.B. ERSETZEN Sie IN ... MySQL, ...queryset.bulk_create
- QuerySet-API-ReferenzQuerySet.delete()
löschen können Sie mehrere Zeilen auf einmal.