性能测试:
各连接池性能测试:https://blog.csdn.net/qq_31125793/article/details/51241943
推荐hikari的理由:https://blog.csdn.net/zxl315/article/details/80420688
测试结论
1:性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。
2:druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。
3:综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池。
4:可开启prepareStatement缓存,对性能会有大概20%的提升。
Springboot2.0以后默认数据库连接池选择了Hikari(性能高)
Hikari只有130kb大小,速度超快,稳定性,可靠性,druid对数据源进行了监控。
注意:spring-boot-starter-web里面没有数据库连接池jar包,数据库连接池的jar包在spring-boot-starter-jdbc里面
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
使用默认数据库连接池(Hikari)
步骤一:起步依赖
<!--jdbc起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
步骤二:数据库连接信息配置
# jdbc_config datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/datebook?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=root
# Hikari will use the above plus the following to setup connection pooling
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
整合为数据库连接池为druid
第一步:起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 阿里druid数据库连接池依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
第二步:数据库信息配置application.yml
###数据库连接信息
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db_mp?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
servertime
#####数据库连接池配置信息
spring.datasource.druid.filters= stat
spring.datasource.druid.initial-size=10
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=8
第三步:测试
@RestController
public class HelloController {
@Autowired
private DataSource dataSource;
@RequestMapping("/datasource")
public String dataSource(){
return dataSource.toString();
}
}
如果在测试中报如下错误:
1
The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized
解决办法:
1
set global time_zone='+8:00';
第四步:查看druid监控工具
直接访问地址:http://localhost:8080/druid/index.html
整合durid以及设置监控页面的密码: https://blog.csdn.net/snakemoving/article/details/76285717