这段时间因为疫情的原因,天天在家呆着,最近一次出门是去倒垃圾。人生第一次戴口罩倒垃圾,不过这也是必须要做的。
不过天天在家呆着倒是有一个好处,那就是可以把心静下来好好地吸收吸收知识,学学技术。而昨天在逛论坛的时候就看到一个有意思的文章,说的是一个数据库连接池,叫HikariCP
。
据说这个连接池的速度非常快,可以秒杀阿里的Druid
。而正好我自己搭建的一个资源共享平台用的数据库连接池就是Druid
,所以我觉得可以换过去试试看。
HikariCP 安装方式 ( Maven )
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.7.6</version>
</dependency>
yml 配置文件
spring:
datasource:
url:
username:
password:
driver-class-name: com.mysql.jdbc.Driver
tomcat:
max-idle: 10
max-active: 15
log-abandoned: true
remove-abandoned: true
remove-abandoned-timeout: 60
上面配置就是正常的数据库配置,没什么特别的。不过HikariCP
需要通过配置类进行配置
HikariCP 配置
下面的配置才是重点,只有配置了下面的内容框架在启动的时候才会使用HikariCP
连接池。
@Configuration
public class DataSourceConfig {
@Value("${spring.datasource.url}")
private String dataSourceUrl;
@Value("${spring.datasource.username}")
private String user;
@Value("${spring.datasource.password}")
private String password;
@Bean
public DataSource primaryDataSource() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl(dataSourceUrl); //数据源
config.setUsername(user); //用户名
config.setPassword(password); //密码
config.addDataSourceProperty("cachePrepStmts", "true"); //是否自定义配置,为true时下面两个参数才生效
config.addDataSourceProperty("prepStmtCacheSize", "250"); //连接池大小默认25,官方推荐250-500
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); //单条语句最大长度默认256,官方推荐2048
config.addDataSourceProperty("useServerPrepStmts", "true"); //新版本MySQL支持服务器端准备,开启能够得到显著性能提升
config.addDataSourceProperty("useLocalSessionState", "true");
config.addDataSourceProperty("useLocalTransactionState", "true");
config.addDataSourceProperty("rewriteBatchedStatements", "true");
config.addDataSourceProperty("cacheResultSetMetadata", "true");
config.addDataSourceProperty("cacheServerConfiguration", "true");
config.addDataSourceProperty("elideSetAutoCommits", "true");
config.addDataSourceProperty("maintainTimeStats", "false");
HikariDataSource ds = new HikariDataSource(config);
return ds;
}
}
效果
在控制台的启动日志中见到下面内容,即代表成功启动并使用HikariCP
连接池。
2020-02-09 22:07:20.541 INFO 145888 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-02-09 22:07:20.718 INFO 145888 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
最后,不得不说,速度是真的变快了好多。不过HikariCP
和Druid
各有各的侧重点,单论速度会更强。
最后的最后,贴上自己搭建的资源共享平台
网址: