資料庫連線池的配置

2021-08-14 13:22:14 字數 2724 閱讀 1032

!-- 配置初始化大小、最小、最大 -->

//檢測時候用到的語句,隨便寫一條即可

記錄下其他的屬性功能吧。

配置預設值

說明name

配置這個屬性的意義在於,如果存在多個資料來源,監控的時候

可以通過名字來區分開來。如果沒有配置,將會生成乙個名字,

格式是:"datasource-" + system.identityhashcode(this)

jdbcurl

連線資料庫的url

,不同資料庫不一樣。例如:

mysql : jdbc:mysql: 

oracle : jdbc:oracle:thin:@10.20.149.85:1521:ocnauto

username

連線資料庫的使用者名稱

password

連線資料庫的密碼。如果你不希望密碼直接寫在配置檔案中,

可以使用configfilter

。詳細看這裡:

driverclassname

根據url

自動識別

這一項可配可不配,如果不配置druid

會根據url

自動識別

dbtype

,然後選擇相應的driverclassname

initialsize

0初始化時建立物理連線的個數。初始化發生在顯示呼叫init

方法,或者第一次getconnection

時maxactive

8最大連線池數量

maxidle

8已經不再使用,配置了也沒效果

minidle

最小連線池數量

maxwait

獲取連線時最大等待時間,單位毫秒。配置了maxwait

之後,預設啟用公平鎖,併發效率會有所下降,

如果需要可以通過配置useunfairlock

屬性為true

使用非公平鎖。

poolpreparedstatements

false

是否快取preparedstatement

,也就是

pscache

。pscache對支援游標的資料庫效能提公升巨大,比如說

oracle

。在mysql5.5

以下的版本中沒有

pscache

功能,建議關閉掉。

5.5及以上版本有

pscache

,建議開啟。

maxopenpreparedstatements

-1要啟用pscache

,必須配置大於

0,當大於0時,

poolpreparedstatements自動觸發修改為

true

。在druid

中,不會存在

oracle

下pscache

占用記憶體過多的問題,

可以把這個數值配置大一些,比如說100

validationquery

用來檢測連線是否有效的sql

,要求是乙個查詢語句。

如果validationquery

為null

,testonborrow

、testonreturn

、testwhileidle都不會其作用。

testonborrow

true

申請連線時執行validationquery

檢測連線是否有效,

做了這個配置會降低效能。

testonreturn

false

歸還連線時執行validationquery

檢測連線是否有效,

做了這個配置會降低效能

testwhileidle

false

建議配置為true

,不影響效能,並且保證安全性。

申請連線的時候檢測,如果空閒時間大於

timebetweenevictionrunsmillis,

執行validationquery

檢測連線是否有效。

timebetweenevictionrunsmillis

有兩個含義:

1) destroy執行緒會檢測連線的間隔時間

2) testwhileidle的判斷依據,詳細看

testwhileidle

屬性的說明

numtestsperevictionrun

不再使用,乙個druiddatasource

只支援乙個

evictionrun

minevictableidletimemillis

connectioninitsqls

物理連線初始化的時候執行的sql

exceptionsorter

根據dbtype

自動識別

當資料庫丟擲一些不可恢復的異常時,拋棄連線

filters

屬性型別是字串,通過別名的方式配置擴充套件外掛程式,

常用的外掛程式有:

監控統計用的filter:stat 

日誌用的filter:log4j 

防禦sql

注入的filter:wall

proxyfilters

型別是list

,如果同時配置了filters

和proxyfilters

,是組合關係,並非替換關係

資料庫連線池配置

連線池的必要性 資料庫連線池是負責分配 管理和釋放資料庫連線,它允許應用程式重複使用乙個現有的資料庫連線,可以視作乙個存放資料庫連線的容器。資料庫連線池採用了資源池設計模式,用於資源共享,避免資源的頻繁分配與釋放問題。同時便於統一管理,可以通過對連線池的控制,限制系統與資料庫的連線,監視資料庫的連線...

資料庫連線池技術 DBCP連線池 配置

最近遇到資料庫連線池配置問題,搜了很多資料對照著進行全域性配置都沒有解決。報的錯誤是 org.apache.tomcat.dbcp.dbcp.sqlnestedexception cannot create jdbc driver of class for connect url jdbc mysq...

資料庫連線池 Redis連線池

基本原理 在內部物件池中,維護一定數量的資料庫連線,並對外暴露資料庫連線的獲取和返回方法。如外部使用者可通過getconnection方法獲取資料庫連線,使用完畢後再通過releaseconnection方法將連線返回,注意此時的連線並沒有關閉,而是由連線池管理器 並為下一次使用做好準備。2.作用 ...