Maison >développement back-end >Golang >Comment puis-je insérer efficacement plusieurs lignes de données simultanément dans Go à l'aide de SQL ?
Insertion multi-données efficace dans Go
L'insertion simultanée de plusieurs lignes de données dans SQL peut améliorer considérablement l'efficacité. Dans Go, vous pouvez y parvenir en utilisant l'instruction préparée par SQL et plusieurs valeurs.
Considérez les données suivantes :
data := []map[string]string{ {"v1":"1", "v2":"1", "v3":"1"}, {"v1":"2", "v2":"2", "v3":"2"}, {"v1":"3", "v2":"3", "v3":"3"}, }
Au lieu de parcourir les données et d'exécuter des instructions INSERT individuelles, vous pouvez utiliser une instruction préparée avec les valeurs suivantes :
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...)
En préparant l'instruction SQL une fois puis en l'exécutant avec toutes les valeurs, vous minimisez la surcharge de créer plusieurs instructions préparées. De plus, l'utilisation de interface{} comme type de vals vous permet d'insérer n'importe quel type de valeur, offrant ainsi de la flexibilité et évitant les conversions de type.
Cette approche est plus efficace et plus sûre que l'utilisation de la concaténation de chaînes pour construire la requête SQL. Les instructions préparées empêchent les vulnérabilités d'injection SQL et améliorent les performances globales de votre code lors de l'insertion simultanée de plusieurs lignes de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!