第 67 期 Go database/sql 資料庫連線池分析
文章來自於:https://reading.developerlearning.cn/reading/67-2019-11-14-sql-pool-reading/
分享者:鄒文通@POP
觀看視訊
Go 夜讀第 67 期 Go database/sql 資料庫連線池分析
本期 Go 夜讀是由 POP 後端團隊的鄒文通給大家帶來的 Go 標準包 database/sql 資料庫連線池原始碼剖析。
大綱
- sql 連線池簡介
- 連線池的工作原理
- sql 包連線池原始碼分析
- 連線池使用 tips
Slides
- https://docs.google.com/presentation/d/10kGjeHGbB0h0Cz8f58reXOyCdyWSOSKrr2160IFNla4/edit?usp=sharing
QA
1. database/sql 中 MaxIdleConns 和 MaxOpenConns 應該怎麼設定才是相對合理的,在選擇設定具體的值時,他們又受什麼因素影響呢?
- 關於這個問題,可以參考這篇文章 Production-ready Database Connection Pooling in Go. 文章的建議是 MaxOpenConns 應該和實際的開啟的連線數的監測值相關。然後按照 MaxOpenConns 的一定比值設定 MaxIdleConns,比方說 50%,這個值取決於你對業務的預估。每維持一個閒散連線,會造成 1MB 左右的客戶端記憶體開銷和 2MB 左右的資料庫記憶體開銷,CPU 開銷相對小一點。文章還給出了一些 benchmark 的測試,在預設 MaxIdleConns 和 MaxIdleConns = 50% * MaxOpenConns 情況下的一個效能的對比,可以參考一下。
參考資料
- Go 元件學習——database/sql 資料庫連線池你用對了嗎
- Go 元件學習——手寫連線池並沒有那麼簡單
- Chapter 8 Connection Pooling with Connector/J
- 徹底弄懂 mysql(二)--連線方式
更多原創文章乾貨分享,請關注公眾號
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 【ITOO】--SQL資料庫優化:切割、資料庫連線池SQL資料庫優化
- 資料庫連線池資料庫
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 資料庫連線池原理資料庫
- Proxool資料庫連線池資料庫
- JAVA資料庫連線池Java資料庫
- Flask資料庫連線池Flask資料庫
- Go實戰準備工作---建立資料庫連線池Go資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- python資料庫連線池Python資料庫
- 手寫資料庫連線池資料庫
- 瞭解資料庫連線池資料庫
- 資料庫連線池的理解資料庫
- 資料庫連線池的使用資料庫
- 資料庫連線池淺析資料庫
- WASCE的資料庫連線池資料庫
- JNDI配置資料庫連線池資料庫
- PROXOOL資料庫連線池使用資料庫
- 關於資料庫連線池資料庫
- .net 資料庫連線池配置資料庫
- Javaweb-資料庫連線池JavaWeb資料庫
- 資料庫連線池實現資料庫
- go 連線資料庫 - GORM學習 - sql查詢Go資料庫ORMSQL
- Go連線池Go
- 從原始碼分析DBCP資料庫連線池的原理原始碼資料庫
- MySql資料庫連線池專題MySql資料庫
- JavaWeb之事務&資料庫連線池JavaWeb資料庫
- mysql資料庫連線池配置教程MySql資料庫
- Python資料庫連線池DButilsPython資料庫
- 聊聊資料庫連線池 Druid資料庫UI
- JDBC資料庫連線池實現JDBC資料庫
- 資料庫連線池的工作原理資料庫
- java連線sql資料庫JavaSQL資料庫
- Tomcat DBCP(Database Connection Pool) 資料庫連線池入門介紹TomcatDatabase資料庫
- JDBC、JDBC框架、資料庫事務、資料庫連線池JDBC框架資料庫
- 利用weblogic的POOL(連線池)連線資料庫 (轉)Web資料庫
- 帶你進入資料庫連線池資料庫