HikariCP的全称是Hikari Connection Pool。Hikari翻译成“光”。
1.HikariCP常用的10个配置
(1)autoCommit:从连接池返回的连接自动提交。默认true。
(2)connectionTimeout:客户端等待连接池连接的超时时间(单位:毫秒)。可配置的最小超时时间是250毫秒。默认值是30000(30秒)。超时等待没有可用连接,将抛出SQLException异常。
(3)idleTimeout:连接允许在连接池闲置的超时时间。前提:minimumIdle < maxmumPoolSize。连接池只有minimumIdle连接时,不会再销毁连接。最小值为10000(10秒),默认值是600000(10分钟),值为0表示空闲连接永远不会被销毁。
(4)maxLifetime:连接池中连接的最长活跃时间。使用中的连接不会销毁,只有关闭的连接才会被销毁。HikariCP对每个连接实现不同的负衰减值,避免大规模连接同时销毁。值为0表示不会被销毁。默认值是1800000(30分钟)。与idleTimeout相关。
(5)connectionTestQuery:默认值:无。用于验证数据库连接是否存在有效。驱动程序不支持JDBC4时,一定要配置,不然HikariCP会报错。在没有配置这个属性时,会通过ping命令进行连接检测。
(6)minimumIdle:最小空闲连接数。如果空闲连接数小于mininumIdle且总连接数小于maximumPoolSize,HikariCP会添加其他连接。HikariCP作者建议不要设置这个值,而是建立一个固定大小的连接池。minimumIdle在不设置时默认为maximumPoolSize。有连接超时被关闭,也会创建一个新的连接。
(7)maximumPoolSize:数据库连接池数允许到达的最大值,包括空闲和正在使用的连接。当连接池达到maximumPoolSize,且没有空闲连接时,getConnection()会堵塞到connectionTimeout毫秒。默认值:10。
(8)metricRegistry:记录度量标准。与监控相关。
(9)healthCheckRegistry:监控系统健康信息。与监控相关。
(10)poolName:连接池用户自定义名称。与监控相关。
2.MySQL高性能配置
(1)prepStmtCacheSize:MySQL驱动为 每个连接缓存预准备的语句数,默认25。建议250-500。
(2)prepStmtCacheSqlLimit:MySQL驱动缓存SQL语句的最大长度。默认256。建议2048。
(3)cachePrepStmts:如果这个参数设置为false,以上配置参数都不会生效。必须将此参数设置为true。
(4)useServerPrepStmts:用于提升较新版本MySQL在服务端预处理语句的性能。应将此属性设置为true。