Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mit psycopg2 effizient mehrere Zeilen in eine Datenbank einfügen?

Wie kann ich mit psycopg2 effizient mehrere Zeilen in eine Datenbank einfügen?

DDD
DDDOriginal
2024-11-26 04:09:09946Durchsuche

How Can I Efficiently Insert Multiple Rows into a Database Using psycopg2?

Effizientes Einfügen mehrerer Zeilen mit psycopg2

Bei der Verarbeitung von Masseneinfügungen in eine Datenbank ist es wichtig, die Leistung zu optimieren. Während psycopg2 für diese Aufgabe die Methode „executemany“ bietet, gibt es einen etwas einfacheren und oft schnelleren Ansatz.

Dieser Ansatz beinhaltet die Verwendung der Funktion mogrify() und die Verkettung der generierten SQL-Anweisungen in einer einzigen Abfrage. Es erfordert die Erstellung eines Tupels, das die einzufügenden Daten enthält. Betrachten wir ein Beispiel:

args = [(1, 2), (3, 4), (5, 6)]
args_str = ','.join(cursor.mogrify("(%s,%s)", (x, )) for x in args)
cursor.execute("INSERT INTO t (a, b) VALUES " + args_str)

Es wurde empirisch gezeigt, dass diese Methode die Leistung erheblich verbessert, insbesondere bei großen Datenmengen. In einem Fall dauerte das Einfügen von 2000 Zeilen mit dieser Methode nur 10 Sekunden, verglichen mit 2 Minuten mit „executemany“.

Durch die Verwendung dieser Technik können Entwickler mit psycopg2 schnellere Masseneinfügungen erzielen und so Datenbankschreibvorgänge optimieren.

Das obige ist der detaillierte Inhalt vonWie kann ich mit psycopg2 effizient mehrere Zeilen in eine Datenbank einfügen?. 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