详解Spring Boot Mysql 版本驱动连接池方案选择

国内环境下,用Mysql还是比较多的。这里简单的总结了一下,如有缪误,还请指正。

Mysql.connect

引入mysql-connector-java包,协议为GPL2.0,该协议具有传染性,即:一旦使用(调用)GPL的库,你的软件将被感染为GPL的软件(主程序)。完全不具有商业友好特性。如果有顾虑,可以使用mariadb-java-client进行替代,见mariadb-connector-j,路径是org.mariadb.jdbc.Driver

引入JDBC驱动程序

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>${version}</version>
</dependency>

JDBC驱动程序版本选择

5.1.**版本

  • 建议使用。
  • 长期维护更新的版本,最新一版是Jul, 2019维护的5.1.48版本。
  • 对应mysql版本5.6、5.7、8.0都可以放心使用

6.0.**版本

  • 禁止使用。
  • 只有几个release版本,没有安全感,已经有一段时间不维护。
  • 与5.1.**存在一些兼容性的问题。

8.0.**版本

  • 酌情使用。
  • 尚未经过验证,该版本主要为了兼容mysql8.0。
  • 更新十分频繁。
  • 需要JDK8以上。

Maven 仓库

Mysql版本建议

  • 选择6个月以上的稳定版,选择开源的社区版的稳定版GA版本。
  • 考虑开发人员开发程序使用的版本是否兼容你选的版本。
  • 优先企业非核心业务采用新版本的数据库GA版本软件。
  • 需要尝试新特性的,多关注Mysql的版本发布通知。
  • 用到JSON等新特性的,可以考虑5.7。
  • 保守的可以选择5.6。
  • 一般云服务提供的版本大多是5.6、5.7。

JDBC连接池选择

选择连接池时,需要考虑的因素很多,比如综合性能,可靠性,稳定性,扩展性等。网上也有很多测评的文章,这里不多做介绍,把结论说一下。

参考
Druid之各种连接池性能对比测试
HikariCP基准测试

性能

  • hikariCP>druid>tomcat-jdbc>dbcp>c3p0
  • hikariCP 的性能十分优异,号称java平台最快的数据库连接池。
  • hikariCP在并发较高的情况下,性能基本上没有下降。
  • 从字节码的维度优化代码。让方法尽量在35个字节码一下,来提升jvm的处理效率。 (default inline threshold for a JVM running the server Hotspot compiler is 35 bytecodes )

扩展性

  • 阿里巴巴出品的druid功能最为全面。
  • 可视化监控,统计数据较为全面。
  • 当然,如果使用的是云数据库,云数据库已经自带了大量监控指标。

总结

如果对监控和跟踪没有要求,可以使用hikariCP, 如果有监控方面的需求,可以使用druid。我公司主要是用云数据库,所以基本都是使用hikariCP,优化一下配置,性能会很棒。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法

    此方法为极简配置,支持MySQL数据库多库连接.支持Hikari连接池.支持MyBatis(包括Dao类和xml文件位置的配置). 1.pom.xml中引入依赖: <!-- Begin of DB related --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId>

  • 详解Spring Boot Mysql 版本驱动连接池方案选择

    国内环境下,用Mysql还是比较多的.这里简单的总结了一下,如有缪误,还请指正. Mysql.connect 引入mysql-connector-java包,协议为GPL2.0,该协议具有传染性,即:一旦使用(调用)GPL的库,你的软件将被感染为GPL的软件(主程序).完全不具有商业友好特性.如果有顾虑,可以使用mariadb-java-client进行替代,见mariadb-connector-j,路径是org.mariadb.jdbc.Driver 引入JDBC驱动程序 <dependenc

  • 详解Spring Boot中使用Flyway来管理数据库版本

    如果没有读过上面内容的读者,有兴趣的可以一阅.在上面的使用JdbcTemplate一文中,主要通过spring提供的JdbcTemplate实现对用户表的增删改查操作.在实现这个例子的时候,我们事先在MySQL中创建了用户表.创建表的过程我们在实际开发系统的时候会经常使用,但是一直有一个问题存在,由于一个系统的程序版本通过git得到了很好的版本控制,而数据库结构并没有,即使我们通过Git进行了语句的版本化,那么在各个环境的数据库中如何做好版本管理呢?下面我们就通过本文来学习一下在Spring B

  • 详解spring boot jpa整合QueryDSL来简化复杂操作

    前言 使用过spring data jpa的同学,都很清楚,对于复杂的sql查询,处理起来还是比较复杂的,而本文中的QueryDSL就是用来简化JPA操作的. Querydsl定义了一种常用的静态类型语法,用于在持久域模型数据之上进行查询.JDO和JPA是Querydsl的主要集成技术.本文旨在介绍如何使用Querydsl与JPA组合使用.JPA的Querydsl是JPQL和Criteria查询的替代方法.QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查

  • 详解spring boot starter redis配置文件

    spring-boot-starter-Redis主要是通过配置RedisConnectionFactory中的相关参数去实现连接redis service. RedisConnectionFactory是一个接口,有如下4个具体的实现类,我们通常使用的是JedisConnectionFactory. 在spring boot的配置文件中redis的基本配置如下: # Redis服务器地址 spring.redis.host=192.168.0.58 # Redis服务器连接端口 spring.

  • 详解Spring boot Admin 使用eureka监控服务

    前言 最近刚好有空,来学习一下如何搭建spring boot admin环境.其中遇到很多的坑. 网上大多都是使用admin-url的方式直接来监控的,感觉一点也不灵活,这不是我想要的结果,所以本篇介绍借助eureka服务注册和发现功能来灵活监控程序. 本文主要记录spring boot admin的搭建过程,希望能有所帮助.其实非常的简单,不要被使用常规方式的误导! 环境介绍 IDE:intellij idea jdk: java8 maven:3.3.9 spring boot:1.5.6

  • 详解Spring Boot 打包分离依赖JAR 和配置文件

    1:自定义路径 <properties> <!--自定义路径--> <directory>d:/im/</directory> </properties> 2:把配置文件打包出来 <build> <plugins> <!--上线部署 JAR启动分离依赖lib和配置--> <!--打包jar--> <plugin> <groupId>org.apache.maven.plugi

  • 实例详解Spring Boot实战之Redis缓存登录验证码

    本章简单介绍redis的配置及使用方法,本文示例代码在前面代码的基础上进行修改添加,实现了使用redis进行缓存验证码,以及校验验证码的过程. 1.添加依赖库(添加redis库,以及第三方的验证码库) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency&

  • 详解spring boot rest例子

    简介:本文将帮助您使用 Spring Boot 创建简单的 REST 服务. 你将学习 什么是 REST 服务? 如何使用 Spring Initializr 引导创建 Rest 服务应用程序? 如何创建获取 REST 服务以检索学生注册的课程? 如何为学生注册课程创建 Post REST 服务? 如何利用 postman 执行 rest 服务? 本教程使用的 rest 服务 在本教程中,我们将使用适当的 URI 和 HTTP 方法创建三个服务: @GetMapping("/ students

  • 详解Spring Boot 目录文件结构

    1.目录结构 src/main/java:存放代码 src/main/resources resources:(Spring Boot 默认的)存放资源文件 static:(Spring Boot 默认的)存放静态文件,比如 css.js.image, (访问方式 http://localhost:8080/js/main.js) public:(Spring Boot 默认的)存放公共文件 templates:(用户自己定义的,可以随便取名,但这里使用公认的文件名)存放静态页面,比如 jsp.

  • 详解Spring Boot使用系统参数表提升系统的灵活性

    目录 一.使用系统参数表的好处 二.系统参数表的表结构 三.系统参数表在项目中的使用 3.1.Entity类 3.2.Dao类 3.3.Service类 3.4.ServiceImpl类 3.5.全局配置服务类 3.6.启动时加载 3.7.在服务实现类中访问系统参数 一.使用系统参数表的好处 ​​以数据库表形式存储的系统参数表比配置文件(.properties文件或.yaml文件)要更灵活,因为无需重启系统就可以动态更新. ​系统参数表可用于存储下列数据: 表字段枚举值,如下列字段: `ques

随机推荐