Beim Versuch, Masseneinfügungen in eine Datenbank durchzuführen, kann das manuelle Erstellen von SQL-Anweisungen zu Fehlern und Leistungsengpässen führen. Die Nutzung der pgx.Conn.CopyFrom-Funktion von pgx bietet eine effiziente Lösung, die den Prozess automatisiert.
Im bereitgestellten Code wird die SQL-Anweisung durch Verketten von Zeichenfolgen erstellt, die kann zu Fehlern führen, wenn die Anzahl der Dollar-Parameter ($-Zeichen) nicht mit der Anzahl der an die conn.Exec-Funktion übergebenen Argumente übereinstimmt. Darüber hinaus kann die Verkettung von Zeichenfolgen bei großen Eingaben ineffizient sein und zu Speicherproblemen führen.
Die CopyFrom-Methode von pgx vereinfacht das Einfügen großer Datenmengen durch Nutzung des PostgreSQL-Kopierprotokolls. Es werden drei Argumente benötigt:
Die CopyFromSource-Schnittstelle ermöglicht Flexibilität bei der Angabe der Datenquelle. Es kann mithilfe eines Slices von Slices von Schnittstellenwerten (wie im bereitgestellten Beispiel), eines strings.Reader mit CSV-Daten oder einer benutzerdefinierten Implementierung implementiert werden.
Unten ist ein überarbeiteter Codeausschnitt, der die Verwendung von CopyFrom demonstriert:
<code class="go">rows := [][]interface{}{ {"abc", 10}, {"dns", 11}, {"qwe", 12}, {"dss", 13}, {"xcmk", 14}, } _, err := conn.CopyFrom( pgx.Identifier{"keys"}, []string{"keyval", "lastval"}, pgx.CopyFromRows(rows), )</code>
Dieser Code fügt die Zeilen effizient in großen Mengen in die „Schlüssel“-Tabelle ein, wodurch die Leistung erheblich verbessert und die Möglichkeit von Fehlern im Vergleich zur manuellen SQL-Erstellung verringert wird.
Das obige ist der detaillierte Inhalt vonSo fügen Sie mithilfe von pgx in Go Massendaten in Postgres ein: Eine umfassende Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!