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 문을 한 번 준비한 다음 모든 값으로 실행하면 SQL 문을 최소화할 수 있습니다. 여러 개의 준비된 문을 만드는 오버헤드. 또한 인터페이스{}를 val 유형으로 사용하면 모든 값 유형을 삽입할 수 있으므로 유연성이 제공되고 유형 변환이 방지됩니다.
이 접근 방식은 문자열 연결을 사용하여 SQL 쿼리를 구성하는 것보다 더 효율적이고 안전합니다. 준비된 문은 SQL 삽입 취약점을 방지하고 여러 데이터 행을 동시에 삽입할 때 코드의 전반적인 성능을 향상시킵니다.
위 내용은 SQL을 사용하여 Go에서 여러 데이터 행을 동시에 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!