Druid 簡介
概述
Druid 是阿里巴巴開源平臺上的一個項目,整個項目由數據庫連接池、插件框架和 SQL 解析器組成。該項目主要是爲了擴展 JDBC 的一些限制,可以讓程序員實現一些特殊的需求,比如向密鑰服務請求憑證、統計 SQL 信息、SQL 性能收集、SQL 注入檢查、SQL 翻譯等,程序員可以通過定製來實現自己需要的功能。
各種連接池性能對比測試
測試執行申請歸還連接 1,000,000(一百萬)次總耗時性能對比。
測試環境
環境 | 版本 |
---|---|
OS | OS X 10.8.2 |
CPU | Intel i7 2GHz 4 Core |
JVM | Java Version 1.7.0_05 |
基準測試結果
Jdbc Connection Pool | 1 thread | 2 threads | 5 threads | 10 threads | 20 threads | 50 threads |
---|---|---|---|---|---|---|
Druid | 898 | 1,191 | 1,324 | 1,362 | 1,325 | 1,459 |
tomcat-jdbc | 1,269 | 1,378 | 2,029 | 2,103 | 1,879 | 2,025 |
DBCP | 2,324 | 5,055 | 5,446 | 5,471 | 5,524 | 5,415 |
BoneCP | 3,738 | 3,150 | 3,194 | 5,681 | 11,018 | 23,125 |
jboss-datasource | 4,377 | 2,988 | 3,680 | 3,980 | 32,708 | 37,742 |
C3P0 | 10,841 | 13,637 | 10,682 | 11,055 | 14,497 | 20,351 |
Proxool | 16,337 | 16,187 | 18,310(Exception) | 25,945 | 33,706(Exception) | 39,501 (Exception) |
結論
- Druid 是性能最好的數據庫連接池,tomcat-jdbc 和 druid 性能接近。
- proxool 在激烈併發時會拋異常,完全不靠譜。
- c3p0 和 proxool 都相當慢,慢到影響 sql 執行效率的地步。
- bonecp 性能並不優越,採用 LinkedTransferQueue 並沒有能夠獲得性能提升。
- 除了 bonecp,其他的在 JDK 7 上跑得比 JDK 6 上快
- jboss-datasource 雖然穩定,但是性能很糟糕