Dans votre application API Web, chaque fonction établit actuellement sa propre connexion à la base de données Postgres, ce qui soulève des inquiétudes quant à l'utilisation des ressources et performance. Cette approche peut être améliorée pour améliorer l'efficacité de votre application.
La méthode préférée consiste à initialiser une seule instance sql.DB au démarrage de l'application. Cette instance peut être transmise comme argument aux fonctions qui nécessitent un accès à la base de données ou rendue disponible en tant que variable globale. Selon la documentation sql.Open(), "La base de données renvoyée peut être utilisée simultanément en toute sécurité par plusieurs goroutines et maintient son propre pool de connexions inactives."
Pour initialiser l'instance sql.DB, vous pouvez utiliser un Fonction package init() :
package main import ( "fmt" "log" "github.com/lib/pq" ) var db *sql.DB func init() { var err error dbURI := "user=postgres password=password dbname=api_dev sslmode=disable" db, err = sql.Open("postgres", dbURI) if err != nil { log.Fatal("Invalid DB config:", err) } if err = db.Ping(); err != nil { log.Fatal("DB unreachable:", err) } } func main() { fmt.Println("Initialized DB connection successfully") }
Cette approche élimine la surcharge liée à l'établissement de plusieurs connexions et garantit une gestion efficace des ressources. L'appel db.Ping() vérifie que la base de données est accessible.
En suivant cette stratégie, votre application API Web peut gérer les connexions à la base de données plus efficacement, minimisant ainsi l'utilisation des ressources et améliorant 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!