详解Spring Boot Mysql 版本驱动连接池方案选择
程序员文章站
2023-11-21 17:30:10
国内环境下,用mysql还是比较多的。这里简单的总结了一下,如有缪误,还请指正。
mysql.connect
引入mysql-connector-java包,协议为gp...
国内环境下,用mysql还是比较多的。这里简单的总结了一下,如有缪误,还请指正。
mysql.connect
引入mysql-connector-java包,协议为gpl2.0,该协议具有传染性,即:一旦使用(调用)gpl的库,你的软件将被感染为gpl的软件(主程序)。完全不具有商业友好特性。如果有顾虑,可以使用mariadb-java-client进行替代,见,路径是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,优化一下配置,性能会很棒。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Python实现随机生成任意数量车牌号
下一篇: SpringMVC上传图片代码实例