Heim >Backend-Entwicklung >Golang >Wie führt man mit pgx und Go effiziente Masseneinfügungen in PostgreSQL durch?

Wie führt man mit pgx und Go effiziente Masseneinfügungen in PostgreSQL durch?

DDD
DDDOriginal
2024-10-31 04:51:02986Durchsuche

How to Perform Efficient Bulk Inserts in PostgreSQL with pgx and Go?

Masseneinfügung in PostgreSQL mit Go und pgx

Dieses Codefragment zeigt, wie man Masseneinfügungen in PostgreSQL mithilfe der pgx-Bibliothek in Go richtig durchführt.

Problembeschreibung

Der ursprüngliche Code versuchte, manuell eine SQL-Anweisung für die Masseneinfügung zu erstellen, Es ist jedoch ein Fehler aufgrund einer falschen Argumentanzahl aufgetreten.

Lösung mit pgx.CopyFrom

Anstatt die SQL-Anweisung manuell zu erstellen, nutzen wir die Methode pgx.Conn.CopyFrom, die das Kopierprotokoll von PostgreSQL nutzt für eine effiziente Masseneinfügung:

<code class="go">rows := [][]interface{}{
    {&quot;abc&quot;, 10},
    {&quot;dns&quot;, 11},
    {&quot;qwe&quot;, 12},
    {&quot;dss&quot;, 13},
    {&quot;xcmk&quot;, 14},
}

copyCount, err := conn.CopyFrom(
    pgx.Identifier{&quot;keys&quot;},
    []string{&quot;keyval&quot;, &quot;lastval&quot;},
    pgx.CopyFromRows(rows),
)
if err != nil {
    fmt.Fprint(os.Stderr, &quot;Error : \n&quot;, err)
}</code>

Dieser Code fügt die Testschlüssel effektiv in einem einzigen Vorgang in die Schlüsseltabelle ein. Optimiert für die Masseneinfügungsleistung.

Das obige ist der detaillierte Inhalt vonWie führt man mit pgx und Go effiziente Masseneinfügungen in PostgreSQL durch?. 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