Go 中高效的多資料插入
在 SQL 中同時插入多個資料行可以顯著提高效率。在 Go 中,您可以使用 SQL 的預先準備語句和多個值來實現此目的。
考慮以下資料:
data := []map[string]string{ {"v1":"1", "v2":"1", "v3":"1"}, {"v1":"2", "v2":"2", "v3":"2"}, {"v1":"3", "v2":"3", "v3":"3"}, }
您可以使用而不是循環遍歷資料並執行單獨的INSERT 語句準備好的語句,其值如下:
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...)
透過準備一次SQL 語句,然後使用所有值執行它,可以最大限度地減少建立多個準備好的語句的開銷。此外,使用 interface{} 作為 val 的類型可讓您插入任何值類型,提供靈活性並避免類型轉換。
這種方法比使用字串連接來建構 SQL 查詢更有效率、更安全。準備好的語句可以防止 SQL 注入漏洞,並在同時插入多個資料行時提高程式碼的整體效能。
以上是Go中如何使用SQL高效能同時插入多行資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!