Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Datenbanken mithilfe der Methodeexecutemany() von Python effizient mit Listen von Wörterbüchern füllen?

Wie kann ich MySQL-Datenbanken mithilfe der Methodeexecutemany() von Python effizient mit Listen von Wörterbüchern füllen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 19:32:02289Durchsuche

How can I efficiently populate MySQL databases with lists of dictionaries using Python's executemany() method?

Effektive Befüllung von MySQL-Datenbanken mit Wörterbuchlisten mithilfe von Executemany in Python

Das Einfügen großer Datensätze in MySQL-Datenbanken kann häufig zu Ineffizienzen und potenziellen Datenbankproblemen führen Sperren. Um dieses Problem bei der Arbeit mit Daten zu beheben, die als Listen von Wörterbüchern dargestellt werden, sollten Sie die Verwendung der Methode „executemany()“ in Betracht ziehen.

Im dargestellten Szenario besteht der ursprüngliche Ansatz darin, jede Zeile der Tabelle manuell in die Datenbank einzufügen, was möglich ist umständlich und fehleranfällig sein. Um diesen Prozess zu optimieren, bietet „executemany()“ eine bequeme Möglichkeit, mehrere SQL-Anweisungen mit einem einzigen Funktionsaufruf auszuführen.

Um „executemany()“ effektiv zu nutzen, strukturieren Sie die Daten neu, indem Sie die Werte aus den Wörterbüchern extrahieren und eine Liste erstellen von Tupeln. Jedes Tupel stellt eine Zeile der Tabelle dar und enthält die entsprechenden Werte für jede Spalte.

itemBank = []
for row in rows:
    itemBank.append((
        tempRow2['Item_Name'],
        tempRow1['Item_Price'],
        tempRow3['Item_In_Stock'],
        tempRow4['Item_Max'], 
        getTimeExtra
        )) #append data

Als nächstes erstellen Sie die SQL-Abfrage mit Platzhaltern für die Parameterwerte, die durch die Werte aus den Tupeln in ersetzt werden die Funktion „executemany()“.

q = """ insert ignore into TABLE1 (
        Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date ) 
        values (%s,%s,%s,%s,%s)           
    """

Führen Sie abschließend die Funktion „executemany()“ mit den geänderten Daten und SQL aus Abfrage.

try:
    x.executemany(q, itemBank)
    conn.commit()
except:
    conn.rollback()

Dieser Ansatz verbessert die Effizienz erheblich, indem mehrere Zeilen in einem einzigen Vorgang ausgeführt werden, wodurch der mit dem Einfügen einzelner Zeilen verbundene Overhead reduziert wird. Darüber hinaus verhindert es potenzielle Datenbankblockaden, indem es die Last auf weniger Transaktionen verteilt.

Durch die Verwendung vonexecutemany() zum Einfügen von Wörterbuchlisten in MySQL-Datenbanken können Entwickler ihre Dateneinfügungsprozesse rationalisieren, die Datenbankleistung verbessern und die Kosten minimieren Gefahr von Blockaden.

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Datenbanken mithilfe der Methodeexecutemany() von Python effizient mit Listen von Wörterbüchern füllen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn