第 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
相關文章
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- Tomcat DBCP(Database Connection Pool) 資料庫連線池入門介紹TomcatDatabase資料庫
- 資料庫連線池原理資料庫
- Flask資料庫連線池Flask資料庫
- python資料庫連線池Python資料庫
- Go實戰準備工作---建立資料庫連線池Go資料庫
- go 連線資料庫 - GORM學習 - sql查詢Go資料庫ORMSQL
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- 聊聊資料庫連線池 Druid資料庫UI
- 資料庫連線池實現資料庫
- Javaweb-資料庫連線池JavaWeb資料庫
- 手寫資料庫連線池資料庫
- Python資料庫連線池DButilsPython資料庫
- 從原始碼分析DBCP資料庫連線池的原理原始碼資料庫
- CDA資料分析師 - SQL資料庫基礎 查詢&連線SQL資料庫
- MySql資料庫連線池專題MySql資料庫
- Java Druid資料庫連線池+SpringJDBCJavaUI資料庫SpringJDBC
- JavaWeb之事務&資料庫連線池JavaWeb資料庫
- mysql資料庫連線池配置教程MySql資料庫
- 《HelloGitHub》第 67 期Github
- SMProxy 分析 (基於 Swoole 開發的 MySQL 資料庫連線池)MySql資料庫
- 帶你進入資料庫連線池資料庫
- 資料庫連線池技術詳解資料庫
- Spring Boot整合Druid資料庫連線池Spring BootUI資料庫
- druid資料庫連線池的配置類UI資料庫
- Springboot 整合阿里資料庫連線池 druidSpring Boot阿里資料庫UI
- Druid資料庫連線池使用體驗UI資料庫
- 淺談JDBC和資料庫連線池JDBC資料庫
- Database Connection Pool 資料庫連線池-01-概覽及簡單手寫實現Database資料庫
- Golang 全域性sql資料庫連線GolangSQL資料庫
- c#連線SQL Server資料庫C#SQLServer資料庫
- 第77節:Java中的事務和資料庫連線池和DBUtilesJava資料庫
- IDEA安裝外掛【Database navigation】並連線資料庫IdeaDatabaseNavigation資料庫
- 資料庫連線池的實現及原理資料庫
- 資料庫連線池_druid基本使用&工具類資料庫UI
- django中的資料庫連線池實現Django資料庫
- golang兩種資料庫連線池實現Golang資料庫