hikari号称史上最快连接池,也是SpringBoot默认推荐的连接池
更多精彩内容欢迎大家访问 我的Hexo博客
为什么hikari连接池如此的快
官网说:
- 自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描;
- 优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码;
- 字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码;
- 自定义集合类型(ConcurrentBag):提高并发读写的效率;
由此可见,相比于其他链接池C3P0,DBCP“性能王”hikari的优势很明显,再加上它130kb的小身形,日后前途不可限量。
配置
首先新建一个SpringBoot的web项目,详情请参考我的上一篇博文SpringBoot初体验,然后配置application.yml文件指定连接池类型为hikari
# 数据库配置
spring.datasource.url = jdbc:mysql://localhost:3306/hikariTest?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#指定连接池类型为hikari
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
# 连接池最大连接数,默认是10
spring.datasource.hikari.maximum-pool-size=50
# 此属性控制从池返回的连接的默认自动提交行为,默认值:true
spring.datasource.hikari.auto-commit=true
#连接将被测试活动的最大时间量
spring.datasource.hikari.validationTimeout=10000
# 连接池连接的最长生命周期,默认30分钟
spring.datasource.hikari.max-lifetime=1800000
# 连接超时时间,默认30秒
spring.datasource.hikari.connection-timeout=30000
#如果您的驱动程序支持JDBC4,不要设置此属性
spring.datasource.hikari.connection-test-query=SELECT 1
# 最小空闲连接数量
spring.datasource.hikari.minimum-idle=10
# 空闲连接存活最大时间,默认10分钟
spring.datasource.hikari.idle-timeout=180000
pom.xml中添加依赖包
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.2</version>
</dependency>
启动项目看到com.zaxxer.hikari.HikariDataSource:Start completed即连接成功