Effizientes Einfügen mehrerer Daten in Go
Das gleichzeitige Einfügen mehrerer Datenzeilen in SQL kann die Effizienz erheblich verbessern. In Go können Sie dies mithilfe der vorbereiteten SQL-Anweisung und mehrerer Werte erreichen.
Berücksichtigen Sie die folgenden Daten:
data := []map[string]string{ {"v1":"1", "v2":"1", "v3":"1"}, {"v1":"2", "v2":"2", "v3":"2"}, {"v1":"3", "v2":"3", "v3":"3"}, }
Anstatt die Daten zu durchlaufen und einzelne INSERT-Anweisungen auszuführen, können Sie diese verwenden eine vorbereitete Anweisung mit Werten wie folgt:
sqlStr := "INSERT INTO test(n1, n2, n3) VALUES " vals := []interface{}{} for _, row := range data { sqlStr += "(?, ?, ?)," vals = append(vals, row["v1"], row["v2"], row["v3"]) } //trim the last , sqlStr = sqlStr[0:len(sqlStr)-1] stmt, _ := db.Prepare(sqlStr) res, _ := stmt.Exec(vals...)
Indem Sie die SQL-Anweisung einmal vorbereiten und sie dann mit allen Werten ausführen, minimieren Sie die Mehraufwand für die Erstellung mehrerer vorbereiteter Anweisungen. Darüber hinaus können Sie durch die Verwendung von interface{} als Typ von Werten jeden Werttyp einfügen, was Flexibilität bietet und Typkonvertierungen vermeidet.
Dieser Ansatz ist effizienter und sicherer als die Verwendung der Zeichenfolgenverkettung zum Erstellen der SQL-Abfrage. Vorbereitete Anweisungen verhindern SQL-Injection-Schwachstellen und verbessern die Gesamtleistung Ihres Codes beim gleichzeitigen Einfügen mehrerer Datenzeilen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit SQL effizient mehrere Datenzeilen gleichzeitig in Go einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!