一個作業5年的粉絲找到我,他說參加美團面試,遇到一個基礎題沒回答上來,
這個問題是:“資料庫連接池有什么用?以及它有哪些關鍵引數”?
我說,這個問題都不知道,那你專案里面的連接池配置怎么設定的? 你們猜他怎么回答,懂得懂得啊,
好的,關于這個問題,我們來看看普通人和高手的回答,
普通人:
資料庫連接池的作用就是去復用這個連接,那么就可以去減少應用跟資料庫之間連接的一個建立的一個開銷,
從而去提升整個這個應用跟資料庫訪問的一個性能,
高手:
關于這個問題,我從這幾個方面來回答,
首先,資料庫連接池是一種池化技術,池化技術的核心思想是實作資源的復用,避免資源重復創建銷毀的開銷,
而在資料庫的應用場景里面,應用程式每次向資料庫發起CRUD操作的時候,都需要創建連接
在資料庫訪問量較大的情況下,頻繁的創建連接會帶來較大的性能開銷,
而連接池的核心思想,就是應用程式在啟動的時候提前初始化一部分連接保存到連接池里面,當應用需要使用連接的時候,直接從連接池獲取一個已經建立好的鏈接,
連接池的設計,避免了每次連接的建立和釋放帶來的開銷,

連接池的引數有很多,不過關鍵引數就幾個:
首先是,連接池初始化的時候會有幾個關鍵引數:
- 初始化連接數,表示啟動的時候初始多少個連接保存到連接池里面,
- 最大連接數,表示同時最多能支持多少連接,如果連接數不夠,后續要獲取連接的執行緒會阻塞,
- 最大空閑連接數,表示沒有請求的時候,連接池中要保留的最大空閑連接,
- 最小空閑連接,當連接數小于這個值的時候,連接池需要再創建連接來補充到這個值,
然后,就是在使用連接的時候的關鍵引數:
- 最大等待時間,就是連接池里面的連接用完了以后,新的請求要等待的時間,超過這個時間就會提示超時例外,
- 無效連接清除, 清理連接池里面的無效連接,避免使用這個連接操作的時候出現錯誤,
不同的連接池框架,除了核心的引數以外,還有很多業務型的引數,比如是否要檢測連接sql的有效性、連接初始化SQL等等,這些配置引數可以在使用的時候去查詢api檔案就可以知道,
以上就是我對這個問題的理解,
總結
這個問題更進一步去問,就會問到 最大連接數、最小連接數應該如何設定?
連接池的實作原理啊等等,
所以建議各位粉絲還是要有一個系統化的學習,
如果有任何面試問題、職業發展問題、學習問題,都可以私信我,
著作權宣告:本博客所有文章除特別宣告外,均采用 CC BY-NC-SA 4.0 許可協議,轉載請注明來自
Mic帶你學架構!
如果本篇文章對您有幫助,還請幫忙點個關注和贊,您的堅持是我不斷創作的動力,歡迎關注「跟著Mic學架構」公眾號公眾號獲取更多技術干貨!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/491843.html
標籤:Java
上一篇:Java8已經發布7年了,不會還有人沒用過CompletableFuture吧
下一篇:Java中檢查字串是否是有效日期
