Spring Boot Mysql 版本驱动链接池方案选择

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

Mysql.connect

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

mysql-connector-java

引入JDBC驱动程序

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${version}</version>
</dependency>
复制代码

JDBC驱动程序版本选择

5.1.**版本

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

6.0.**版本

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

8.0.**版本

  • 酌情使用。
  • 还没有通过验证,该版本主要为了兼容mysql8.0。
  • 更新十分频繁。
  • 须要JDK8以上。

Maven 仓库 git

版本稳定版

Mysql版本建议

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

JDBC链接池选择

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

参考

Druid之各类链接池性能对比测试sql

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,优化一下配置,性能会很棒。tomcat

相关文章
相关标签/搜索