Lorsque vous travaillez avec des goroutines HTTP dans Go, il est essentiel d'optimiser les performances en partageant les connexions de base de données. Cet article montre comment établir et partager une connexion MySQL entre plusieurs gestionnaires HTTP.
Dans Go, le package base de données/sql gère automatiquement le pool de connexions. Lors de l'appel de sql.Open(...), un pool de connexions est créé plutôt qu'une seule connexion. Cela signifie que le package base de données/sql obtiendra automatiquement une connexion du pool si toutes les connexions sont déjà utilisées.
Pour partager une connexion MySQL dans vos goroutines HTTP, suivez ces étapes :
Initialiser la base de données Connexion :
Exemple :
db, err := sql.Open("mysql", "root:@/mydb?charset=utf8") if err != nil { log.Fatalf("Error opening database: %v", err) }
Configurer la connexion Pooling :
Partagez la connexion Handle :
Exemple :
var db *sql.DB
Vérifier la connexion à la base de données :
Exemple :
err = db.Ping() if err != nil { log.Fatalf("Error opening database connection: %s", err.Error()) }
Utiliser la connexion dans les gestionnaires HTTP :
Exemple :
func HomeHandler(w http.ResponseWriter, r *http.Request) { var msg string err := db.QueryRow("SELECT msg FROM hello WHERE page=?", "home").Scan(&msg) if err != nil { fmt.Fprintf(w, "Database Error!") } else { fmt.Fprintf(w, msg) } }
En suivant ces étapes, vous pouvez partager efficacement une connexion MySQL sur plusieurs goroutines HTTP sans compromettre les performances.
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!