亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang sql 數據庫打開和關閉

Golang sql 數據庫打開和關閉

Go
慕村225694 2021-09-09 15:00:16
在 Go database/sql 包中,它說很少用 db.Close 關閉數據庫,因為它意味著被許多 go 例程共享。那么當我們給出 100 個查詢相同數據的函數時,哪個更好:在每個函數里面打開數據庫只打開數據庫一次,每 100 個函數使用相同的連接。1 更容易,因為如果一個失敗,其他 99 仍然可以工作。并且不需要傳遞數據庫連接參數。但在性能方面哪個更好?
查看完整描述

1 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

您錯過了文檔中的一個重要部分:

返回的數據庫對于多個 goroutine 并發使用是安全的,并維護自己的空閑連接池。因此,應該只調用一次 Open 函數。很少需要關閉數據庫。

(強調我的)

因此,您的選項 #2 實際上沒有意義。連接是池化的 - 所以use the same connection for every 100 function不適用。此外,選項 #1 是浪費時間 - 按照文檔說明只執行一次,但Ping在執行之后調用以確保一切正常(并讓它實際嘗試連接到數據庫 - 無論驅動程序如何)。


查看完整回答
反對 回復 2021-09-09
  • 1 回答
  • 0 關注
  • 331 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號