【Java】全网最详细的SpringBoot集成HikariCP连接池配置

前言

从 SpringBoot2.0 版本开始,使用HikariCP 做为默认的数据库连接池, HikariCP 在性能上表现优异,被公认为是最快的 JDBC 连接池之一,它还具有良好的稳定性和广泛的兼容性,能够与大多数主流的 JDBC 框架和数据库引擎无缝集成。因此,无论是从性能还是从易用性的角度来看,HikariCP 都是目前springboot项目的首选,如果大家在搭建框架需要HikariCP可以直接看本篇文章,详细配置可以直接复制使用。

一、HikariCP 配置

在yml文件中我们可以通过spring:data:source:type指定连接池,通过配置type为com.zaxxer.hikari.HikariDataSource指定HikariCP做为连接池,如果使用springboot2.0及以上不配置type默认使用HikariCP:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/dbname
    username: root
    password: Droot
    driver-class-name: com.mysql.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      # 连接池中允许的最小连接数。缺省值:10
      minimum-idle: 10
      # 连接池中允许的最大连接数。缺省值:10
      maximum-pool-size: 20
      # 自动提交 默认值为 true
      auto-commit: true
      # 连接允许在池中闲置的最长时间,一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟
      idle-timeout: 600000
      # 连接池名字,用于日志和监控
      pool-name: mysql-pool
      # 一 个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒
      max-lifetime: 600000
      # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒
      connection-timeout: 30000
      #连接测试查询语句,用于验证连接是否有效
      connection-test-query: select 1
      #验证连接有效性的超时时间,单位为毫秒,默认值 5000 毫秒(5 秒)
      validation-timeout: 30000
      #设置事务隔离级别,不配置此项默认遵从数据库的配置,读已提交TRANSACTION_READ_COMMITTED,此外还有读未提交TRANSACTION_READ_UNCOMMITTED,可重复度TRANSACTION_REPEATABLE_READ,串行化TRANSACTION_SERIALIZABLE
      transaction-isolation: TRANSACTION_READ_COMMITTED
      #是否将连接设置为只读模式,默认false
      readOnly: false
参数释义:

参数

说明

缺省值

minimum-idle

连接池中允许的最小连接数。缺省值:10;如果空闲连接低于此值并且连接池中的总连接数少于maximumPoolSize值,则HikariCP将尝试创建新的连接。考虑到系统的内存和 CPU 资源,过大的 minimum-idle 可能会导致资源浪费。通常,minimum-idle 的值可以设置为 maximum-pool-size 的一半或更小。

10

maximum-pool-size

连接池中允许的最大连接数。缺省值:10,这个值将决定到数据库后端的最大实际连接数。对此的合理价值最好由您的执行环境决定,根据实际环境配置,通常设置为核心数的2倍较优

10

auto-commit

自动提交 默认值为 true

true

idle-timeout

连接允许在池中闲置的最长时间,一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟

600000

pool-name

连接池名字,用于日志和监控

aumax-lifetime

一 个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒

1800000

connection-timeout

等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒

30000

connection-test-query

连接测试查询语句,用于验证连接是否有效

validation-timeout

验证连接有效性的超时时间,单位为毫秒,默认值 5000 毫秒(5 秒)

5000

transaction-isolation

设置事务隔离级别,不配置此项默认遵从数据库的配置,读已提交TRANSACTION_READ_COMMITTED,此外还有读未提交TRANSACTION_READ_UNCOMMITTED,可重复度TRANSACTION_REPEATABLE_READ,串行化TRANSACTION_SERIALIZABLE

readOnly

是否将连接设置为只读模式,默认false

false

为了帮助更多像你一样的读者,我将持续在专栏中分享技术干货和实用技巧。如果你觉得这篇文章对你有帮助,可以考虑关注我的专栏,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值