在Go 中重複使用單一Postgres 資料庫連接進行行插入
在資料庫操作領域,常見任務之一是插入行到一個表中。為了獲得最佳資料庫效能,必須建立單一連線並將其重新用於所有插入操作。這種方法避免了打開大量連接的開銷,並確保高效的資料庫互動。
問題:打開過多的資料庫連接
嘗試使用以下命令將多行插入Postgres 表時去吧,避免為每個插入操作打開一個新連接是至關重要的。如果您的程式碼類似於以下:
db, err := sql.Open("postgres", "connectionURL") if err != nil { log.Fatal(err) } for i := 0; i < 10; i++ { // Insert row _, err := db.Exec("INSERT INTO table VALUES (...)") if err != nil { log.Fatal(err) } }
您將遇到開啟多個連線的問題。這是因為 db 變數是一個連線池而不是單一連線。每次呼叫 Exec 時,都會開啟一個新連線並新增到池中。
解決方案:重複使用單一連接
確保單一連接用於多次插入,需要進行以下修改:
修正後的程式碼應類似於以下內容:
var db *sql.DB func init() { var err error db, err = sql.Open("postgres", "connectionURL") if err != nil { log.Fatal(err) } if err = db.Ping(); err != nil { log.Fatal(err) } } func main() { for i := 0; i < 10; i++ { // Insert row _, err := db.Exec("INSERT INTO table VALUES (...)") if err != nil { log.Fatal(err) } } }
透過實現這些更改,您可以有效地重複使用所有插入操作使用單一Postgres DB 連接,消除開啟過多連接的問題並最大限度地提高資料庫效率。
以上是如何在 Go 中重複使用單一 Postgres 資料庫連接以實現高效的行插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!