在您的Web API 應用程式中,每個函數目前都建立自己的與Postgres 資料庫的連接,這引起了對資源利用率和表現。可以改進此方法以提高應用程式的效率。
首選方法是在應用程式啟動時初始化單一 sql.DB 實例。此實例可以作為參數傳遞給需要資料庫存取的函數或作為全域變數使用。根據sql.Open() 文檔,「返回的DB 對於多個goroutine 並發使用是安全的,並維護自己的空閒連接池。」
要初始化sql.DB 實例,您可以使用包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") }
這種方法消除了建立多個連線的開銷,並確保高效率的資源管理。 db.Ping() 呼叫驗證資料庫是否可存取。
透過遵循此策略,您的 Web API 應用程式可以更有效地處理資料庫連接,最大限度地減少資源利用率並提高效能。
以上是如何在 My Go Web API 中高效率管理資料庫連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!