Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Best Practice von bulk_create für massive Datensätze

Während bulk_create zum Speichern einer kleinen Anzahl von Datensätzen während der Verarbeitung eines HTML-Formulars nützlich ist, ist es nicht ideal zum Speichern von Tausenden von Datensätzen geeignet. Wie Sie bereits herausgefunden haben, ist es langsam, weil es viel Speicher benötigt und eine sehr große Abfrage an die Datenbank sendet. Glücklicherweise DATEN IN DATEI LADEN kommt zur Rettung.

Wir können eine Datei erstellen, die derjenigen ähnelt, die mithilfe von csv-Writer erstellt wird Das folgende Beispiel stammt aus der Dokumentation.

import csv
    with open('some.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(someiterable)

Schließlich, wie Sie bereits herausgefunden haben, kann die Option LOKAL zum LADEN VON DATEN manchmal der Bequemlichkeit halber verwendet werden.

Bei Verwendung dieser Option muss die Datei nicht manuell auf den Server übertragen werden. Sie können die CSV-Datei auf der Client-Seite generieren und die lokale Option veranlasst den MySQL-Client, die Datei automatisch an den Server zu übertragen.