①主要配置
   (1)dataSourceClassName:这是DataSourceJDBC驱动程序提供的类的名称。(基于DriverManager的JDBC驱动程序配置,则不需要此属性)
   (2)jdbcUrl:此属性指示HikariCP使用“基于DriverManager的”配置。 请注意,如果使用此属性,您仍可以使用DataSource属性来配置驱动程序,实际上建议使用URL本身指定的驱动程序参数。 默认值:无(不建议配置此参数)
   (3)username:此属性设置从基础驱动程序获取Connections时使用的默认身份验证用户名。请注意,对于DataSources,它通过调用DataSource.getConnection(*username*, password)底层DataSource 以非常确定的方式工作。但是,对于基于驱动程序的配置,每个驱动程序都不同。在基于驱动程序的情况下,HikariCP将使用此属性在传递给驱动程序的调用中username设置user属性。如果这不是您所需要 的,请完全跳过此方法并调用,例如PropertiesDriverManager.getConnection(jdbcUrl, props)addDataSourceProperty("username", ...)
。 默认值:无  ()
(4)password:此属性设置从基础驱动程序获取Connections时使用的默认验证密码。请注意,对于DataSources,它通过调用DataSource.getConnection(username, *password*)底层DataSource 以非常确定的方式工作。但是,对于基于驱动程序的配置,每个驱动程序都不同。在基于驱动程序的情况下,HikariCP将使用此属性在传递给驱动程序的调用中password设置password属性。如果这不是您所需要的,请完全跳过此方法并调用,例如。 默认值:无PropertiesDriverManager.getConnection(jdbcUrl, props)addDataSourceProperty("pass", ...)
②经常使用的配置
(5)autoCommit:此属性控制从池返回的连接的默认自动提交行为。它是一个布尔值。 默认值:true(官方默认设置)
(6)connectionTimeout:此属性控制客户端等待池中连接的最大毫秒数。如果在没有连接可用的情况下超过此时间,则将抛出SQLException。最低可接受的连接超时为250毫秒。 默认值:30000(30秒)咱们配置的是60s还可以设置更长,但没必要
(7)idleTimeout:此属性控制允许连接在池中处于空闲状态的最长时间。 (此设置仅在大于minimumIdle(最小空闲数)小于maximumPoolSize(池大小)时才适用。一旦池到达连接, 空闲连接将不会退出minimumIdle。连接是否空闲退出的最大变化为+30秒,平均变化为+15秒。在此超时之前,连接永远不会被空闲。)值为0表示永远不会从池中删除空闲连接。允许的最小值为10000毫秒(10秒)。 默认值:600000(10分钟)
(8)maxLifetime:此属性控制池中连接的最长生命周期。使用中的连接永远不会退役。 强烈建议您设置此值,它应比任何数据库或基础结构强加的连接时间限制短几秒。 值0表示没有最大寿命(无限寿命)。 默认值:1800000(30分钟咱们配置的就是30分钟)如果设置成0会出现问题:长时间没对库进行操作(超过8小时)连接会依然在池内,超过8小时数据库会断开与客户端的链接,在时用此链接必定报错
(9)connectionTestQuery:如果您的驱动程序支持JDBC4,我们强烈建议您不要设置此属性。这适用于不支持JDBC4的“遗留”驱动程序Connection.isValid() API。这是在从池中给出连接之前执行的查询,以验证与数据库的连接是否仍然存在。再次尝试运行没有此属性的池,如果您的驱动程序不符合JDBC4,HikariCP将记录错误以通知您。 默认值:无
(10)minimumIdle:此属性控制HikariCP尝试在池中维护的最小空闲连接数。如果空闲连接低于此值并且池中的总连接数小于maximumPoolSize,则HikariCP将尽最大努力快速有效地添加其他连接。但是,为了获得最高性能和对峰值需求的响应,我们建议不要设置此值,而是允许HikariCP充当固定大小的连接池。 默认值:与maximumPoolSize相同
(11)maximumPoolSize:此属性控制允许池到达的最大大小,包括空闲和正在使用的连接。基本上,此值将确定到数据库后端的实际连接的最大数量。对此的合理值最好由您的执行环境决定。当池达到此大小且没有空闲连接可用时,对getConnection()的调用将connectionTimeout在超时前阻塞最多毫秒。请阅读有关池尺寸的信息。 cpu核心数*2 + 硬盘数, 默认10 一个连接池一般来讲连接数在10-20个, 根据部署的应用程序数量可以推测出mysql的max_connections值, 默认值:10(咱们配置的是20)
(12)metricRegistry:此属性允许您指定池使用的Codahale / Dropwizard(关于度量标准的库) 实例MetricRegistry来记录各种度量标准,监控代码运行的状态 ,默认值:无(就是使用度量标准监控代码的运行状态)
(13)healthCheckRegistry:此属性允许您指定池使用的Codahale / Dropwizard 实例HealthCheckRegistry来报告当前的健康信息。。 默认值:无
(14)poolName:此属性表示连接池的用户定义名称,主要显示在日志记录和JMX管理控制台中,以标识池和池配置。 默认值:自动生成

③不经常使用
(15)initializationFailTimeout:如果池无法成功初始化连接,则此属性控制池是否“快速失败”。任何正数都被认为是尝试获取初始连接的毫秒数; 在此期间,应用程序线程将被阻止。如果在此超时发生之前无法获取连接,则将引发异常。此超时被应用后的connectionTimeout 期。如果值为零(0),HikariCP将尝试获取并验证连接。如果获得连接但验证失败,则将引发异常并且池未启动。但是,如果无法获得连接,则池将启动,但稍后获取连接的努力可能会失败。小于零的值将绕过任何初始连接尝试,并且池将在尝试在后台获取连接时立即启动。因此稍后获得连接的努力可能失败。 默认值:1
(16)isolateInternalQueries:是否在其自己的事务中隔离内部池查询,例如连接活动测试。通常使用默认值。 默认值:false
(17)allowPoolSuspension:此属性控制是否可以通过JMX(Java Management Extensions,即Java管理扩展,它提供了一种在运行时动态管理资源的体系结构)挂起和恢复池。这对某些故障转移自动化方案很有用。当池暂停时,调用 getConnection()将不会超时并将一直保持到池恢复为止。 默认值:false(一般没有特殊需要取默认值)
(18)readOnly:此属性控制默认情况下从池中获取的Connections是否处于只读模式。请注意,某些数据库不支持只读模式的概念,而其他数据库在Connection设置为只读时提供查询优化。您是否需要此属性将在很大程度上取决于您的应用程序和数据库。 默认值:false(设置true只能对数据库进行读操作,一般不设置此值)
(19)registerMbeans:此属性控制是否注册JMX管理Bean(“MBean”,要注入Mbeanservice,MBean:是Managed Bean的简称,可以翻译为“管理构件”。在JMX中MBean代表一个被管理的资源实例,通过MBean中暴露的方法和属性,外界可以获取被管理的资源的状态和操纵MBean的行为。)。 默认值:false    ()
(20)Catalog:为支持 catalog(目录) 概念的数据库设置默认 catalog,如果未指定此属性,则使用JDBC驱动程序定义的缺省目录。 默认值:驱动程序默认
(21)connectionInitSql:此属性设置一个SQL语句,该语句将在每次创建新连接之后执行,然后再将其添加到池中。如果此SQL无效或引发异常,则将其视为连接失败,并将遵循标准重试逻辑。 默认值:无(就是检查连接是不是正确建立)
(22)driverClassName:HikariCP将尝试仅通过驱动程序管理器来解析驱动程序jdbcUrl,但对于某些较旧的驱动程序,driverClassName还必须指定。除非您收到明显的错误消息,指出未找到驱动程序,否则请忽略此属性。 默认值:无(测试不配置会报错)
(23)transactionIsolation:此属性控制从池返回的连接的默认事务隔离级别。如果未指定此属性,则使用JDBC驱动程序定义的缺省事务隔离级别。如果您具有所有查询通用的特定隔离要求,则仅使用此属性。此属性的值是从不断的名称Connection 类,如TRANSACTION_READ_COMMITTED,TRANSACTION_REPEATABLE_READ等 。默认值:驱动程序默认
(24)validationTimeout:此属性控制连接测试活动的最长时间。该值必须小于connectionTimeout。最低可接受的验证超时为250毫秒。 默认值:5000
(25)leakDetectionThreshold:此属性控制在记录消息之前连接可以离开池的时间量,用来设置连接被占用的超时时间,指示可能的连接泄漏。值为0表示禁用泄漏检测。启用泄漏检测的最低可接受值是2000(2秒)。 默认值:0
(26)dataSource:此属性仅可通过编程配置或IoC容器获得。此属性允许您直接设置DataSource要由池包装的实例,而不是让HikariCP通过反射构造它。这在一些依赖注入框架中很有用。指定此属性后,dataSourceClassName将忽略该属性和所有特定于DataSource的属性。对hikari不做此设置  默认值:无
(27)Schema(表):该属性设置的默认模式为支持模式的概念数据库。如果未指定此属性,则使用JDBC驱动程序定义的默认架构。 默认值:驱动程序默认
(28)threadFactory:此属性仅可通过编程配置或IoC容器获得。此属性允许您设置java.util.concurrent.ThreadFactory将用于创建池使用的所有线程的实例,设置线程属性。在某些受限执行环境中需要它,其中线程只能通过ThreadFactory应用程序容器提供的方式创建。 默认值:无
(29)scheduledExecutor:此属性仅可通过编程配置或IoC容器获得。此属性允许您设置java.util.concurrent.ScheduledExecutorService将用于各种内部计划任务的实例(用于定时任务的接口)。如果向HikariCP提供ScheduledThreadPoolExecutor 实例,建议setRemoveOnCancelPolicy(true)使用。 默认值:

特别感谢:感谢各大博主提供的一手资源,另外这里加入我的一些理解有不正确的地方请指正

7.参考配置

spring.datasource.hikari.maxLifetime=1800000
spring.datasource.hikari.connectionTimeout=60000
spring.datasource.hikari.maximumPoolSize=20
spring.datasource.hikari.cachePrepStmts=true
spring.datasource.hikari.prepStmtCacheSize=250
spring.datasource.hikari.prepStmtCacheSqlLimit=2048
spring.datasource.hikari.useServerPrepStmts=true
spring.datasource.hikari.useLocalSessionState=true
spring.datasource.hikari.rewriteBatchedStatements=true
spring.datasource.hikari.cacheResultSetMetadata=true
spring.datasource.hikari.cacheServerConfiguration=true
spring.datasource.hikari.maintainTimeStats=false

转载于:https://my.oschina.net/u/4053283/blog/2999499

Hikari配置详解相关推荐

  1. Hikari连接池配置详解

    Hikari连接池配置详解 ## 数据库配置 spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.d ...

  2. SpringBoot—整合log4j2入门和log4j2.xml配置详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...

  3. Spring Boot 使用 HikariCP 连接池配置详解

    Spring Boot 使用 HikariCP 连接池配置详解 HikariCP 是一个高性能的 JDBC 连接池组件. Spring Boot 2.x 将其作为默认的连接池组件,项目中添加 spri ...

  4. elasticsearch-.yml(中文配置详解)

    此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...

  5. (ASA) Cisco Web ××× 配置详解 [三部曲之一]

    (ASA) Cisco Web ××× 配置详解 [三部曲之一] 注意:本文仅对Web×××特性和配置作介绍,不包含SSL ×××配置,SSL ×××配置将在本版的后续文章中进行介绍.   首先,先来 ...

  6. mybatis 同名方法_MyBatis(四):xml配置详解

    目录 1.我们将 数据库的配置语句写在 db.properties 文件中 2.在 mybatis-configuration.xml 中加载db.properties文件并读取 通过源码我们可以分析 ...

  7. logback节点配置详解

    logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...

  8. PM配置详解之一:企业结构

    1.维护计划工厂 功能说明 在公司结构中定义维护工厂(通常已经作为后勤工厂存在)和维护计划工厂(简称计划工厂). 维护工厂:设备所安装的位置,如某机组安装在合营公司,那么合营公司就是此机组的维护工厂, ...

  9. 转 Log4j.properties配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

最新文章

  1. 一个基于J2EE的web应用程序运行起来需要什么?
  2. springmvc学习(小知识点整理)
  3. Windows Nginx 反向代理 Microsoft SQL Server (MSSQL)
  4. 怎么查看有关cas的报错_Linux LVM I/O报错,你也遇到这样的问题吗?
  5. 模块化操作(es6写法)
  6. php str cmp,php中整数的strcmp equivalent(intcmp)
  7. Hadoop生态Flume(四)拦截器(Interceptor)介绍与使用(2)
  8. c++心形代码_c语言心形告白代码实现
  9. 在Oracle中添加用户登录名称
  10. python 黏贴版 pyperclip
  11. App installation failed (A valid provisioning profile for this executable was not found)
  12. Item 22. 模板方法与曲线救国(Template Method)
  13. android打开ofd文件
  14. 用Python实现简单的服务器【新手必学】
  15. 三阶魔方大中小魔公式_三阶魔方花样玩法,公式汇总
  16. minmax()函数
  17. 电脑文件被删除了,找回文件数据的方法有哪些?
  18. 易基因|ChIP-seq等实验揭示CHD6转录激活前列腺癌通路的关键功能 | 肿瘤耐药研究
  19. 【STC8A8K64D4开发板】——开发板程序下载
  20. 虚拟机安装之用户在命令行上发出了EULAS AGREED=1,表示不接受许可协议(虚拟机卸载残留)

热门文章

  1. 输入一会整数,输出所有质素因子2020.11.10
  2. 周游C语言教程9 - 数组
  3. 递归神经网络LSTM原理——结合实例MATLAB实现
  4. 操作系统中常用的几种进程调度算法
  5. WPF 实现扇形统计图
  6. 史上最牛逼的导航网站(开源免费)
  7. 这100件年度精选案例,讲透了技术公司的创新逻辑
  8. Hexo博客加时间线timeline功能
  9. Your branch and remoteBranchName have diverged solution
  10. dns被劫持了怎么办、DNS是什么【详解】