数据库连接池对比

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 数据库连接池对比

常见的driverClassName和url

  • DB2:
  • driverClassName: com.ibm.db2.jcc.DB2Driver
  • url: jdbc:db2://localhost:50000/sample 默认端口号6789
  • Oracle:
  • driverClassName: oracle.jdbc.driver.OracleDriver
  • url: jdbc:oracle:thin:@localhost:1521:orcl 默认端口号1521
  • url: jdbc:oracle:thin:@localhost:1521:db
  • MySql:
  • driverClassName: com.mysql.jdbc.Driver
  • url: jdbc:mysql://localhost:3306/test 默认端口是3306
  • SQLServer  
  • jdbc:microsoft:sqlserver://localhost:1433;databaseName=db默认端口号1433
  • SQLServer 2005  
  • jdbc:sqlserver://localhost:1433;databaseName=db默认端口号1433

  • 主要功能对比
Druid BoneCP DBCP C3P0 Proxool JBoss Tomcat-Jdbc
LRU ?
PSCache
PSCache-Oracle-Optimized
ExceptionSorter
更新维护 ?


  • 目前常用的数据源主要有:c3p0、dbcp、proxool、druid等
  • Spring 推荐使用dbcp
  • Tomcat 自带连接池dbcp
  • Hibernate 推荐使用c3p0和proxool
  • 阿里巴巴的druid德鲁伊

Tomcat 在 7.0 以前的版本都是使用 commons-dbcp 做为连接池的实现,但是 dbcp 饱受诟病,原因有:

  • dbcp 是单线程的,为了保证线程安全会锁整个连接池
  • dbcp 性能不佳
  • dbcp 太复杂,超过 60 个类
  • dbcp 使用静态接口,在 JDK 1.6 编译有问题
  • dbcp 发展滞后

Tomcat 从 7.0 开始引入一个新的模块:Tomcat jdbc pool

  • tomcat jdbc pool 近乎兼容 dbcp ,性能更高
  • 异步方式获取连接
  • tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架
  • 使用 javax.sql.PooledConnection 接口获取连接
  • 支持高并发应用环境
  • 超简单,核心文件只有8个,比 c3p0 还 少
  • 更好的空闲连接处理机制
  • 支持 JMX
  • 支持 XA Connection
<!-- 连接池 阿里巴巴数据源 -->
<druid.version>1.0.23</druid.version>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>${druid.version}</version>
</dependency>


相关文章
|
SQL Prometheus 监控
数据库连接池选型 Druid vs HikariCP
springboot 现在官方默认的数据库连接池是 HikariCP,HikariCP的性能从测试的数据上来看也是最高的。
数据库连接池选型 Druid vs HikariCP
|
SQL 分布式计算 Scala
【Spark】Spark SQL 数据类型转换
【Spark】Spark SQL 数据类型转换
2032 0
【Spark】Spark SQL 数据类型转换
|
开发工具
【云手机】(systemctl)解决:System has not been booted with systemd as init system (PID 1). Can't ope...
【云手机】(systemctl)解决:System has not been booted with systemd as init system (PID 1). Can't ope...
3231 0
|
3月前
|
关系型数据库 分布式数据库 数据库
再获殊荣,阿里云PolarDB数据库蝉联SIGMOD最佳论文奖
内存池化技术新突破,阿里云PolarDB蝉联SIGMOD最佳论文奖
|
IDE 网络安全 开发工具
GitLab - GitLab 使用 SSH 免密登录
GitLab 使用 SSH 免密登录
1530 0
GitLab - GitLab 使用 SSH 免密登录
|
3月前
|
SQL 关系型数据库 PostgreSQL
CTE vs 子查询:深入拆解PostgreSQL复杂SQL的隐藏性能差异
本文深入探讨了PostgreSQL中CTE(公共表表达式)与子查询的选择对SQL性能的影响。通过分析两者底层机制,揭示CTE的物化特性及子查询的优化融合优势,并结合多场景案例对比执行效率。最终给出决策指南,帮助开发者根据数据量、引用次数和复杂度选择最优方案,同时提供高级优化技巧和版本演进建议,助力SQL性能调优。
252 1
|
11月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
246 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
机器学习/深度学习 自然语言处理 PyTorch
在Python中,文本向量化
在Python中,文本向量化
555 2
|
测试技术 API Go
入职必会-开发环境搭建24-Postman下载和安装
Postman 是一款广泛使用的 API 测试工具,它提供了一个友好的图形用户界面,帮助开发人员轻松地创建、测试、调试和管理 API。除了 API 测试外,Postman 还支持协作和自动化工作流,使开发团队能够更高效地进行 API 开发和测试。
196 0
入职必会-开发环境搭建24-Postman下载和安装