Druid、BoneCP、DBCP、C3P0等主流數據庫對比


 

關鍵功能 Druid BoneCP DBCP C3P0 Proxool JBoss
LRU
PSCache
PSCache-Oracle-Optimized
ExceptionSorter
監控

擴展

 


LRU

 

LRU是一個性能關鍵指標,特別Oracle,每個Connection對應數據庫端的一個進程,如果數據庫連接池遵從LRU,有助於數據庫服務器優化, 這是重要的指標。在測試中,Druid、DBCP、Proxool、JBoss是遵守LRU的。BoneCP、C3P0則不是。BoneCP在mock環 境下性能可能好,但在真實環境中則就不好了。

PSCache

PSCache是數據庫連接池的關鍵指標。在Oracle中,類似SELECT NAME FROM USER WHERE ID = ?這樣的SQL,啟用PSCache和不啟用PSCache的性能可能是相差一個數量級的。Proxool是不支持PSCache的數據庫連接池,如果你 使用Oracle、SQL Server、DB2、Sybase這樣支持游標的數據庫,那你就完全不用考慮Proxool。

PSCache-Oracle-Optimized

Oracle 10系列的Driver,如果開啟PSCache,會占用大量的內存,必須做特別的處理,啟用內部的EnterImplicitCache等方法優化才能 夠減少內存的占用。這個功能只有DruidDataSource有。如果你使用的是Oracle Jdbc,你應該毫不猶豫采用DruidDataSource。

ExceptionSorter

ExceptionSorter是一個很重要的容錯特性,如果一個連接產生了一個不可恢復的錯誤,必須立刻從連接池中去掉,否則會連續產生大量錯誤。這個 特性,目前只有JBossDataSource和Druid實現。Druid的實現參考自JBossDataSource。

監控

DruidDataSource自身提供有NotEmptyWaitCount、PSCahcheHitCount等有用的監控屬性,通過配置StatFilter能夠監控SQL的執行情況。

擴展

DruidDataSource提供基於Filter-Chain模式的模式的擴展


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM