詳解Spring Boot Mysql 版本驅(qū)動(dòng)連接池方案選擇
國(guó)內(nèi)環(huán)境下,用Mysql還是比較多的。這里簡(jiǎn)單的總結(jié)了一下,如有繆誤,還請(qǐng)指正。
Mysql.connect
引入mysql-connector-java包,協(xié)議為GPL2.0,該協(xié)議具有傳染性,即:一旦使用(調(diào)用)GPL的庫,你的軟件將被感染為GPL的軟件(主程序)。完全不具有商業(yè)友好特性。如果有顧慮,可以使用mariadb-java-client進(jìn)行替代,見mariadb-connector-j,路徑是org.mariadb.jdbc.Driver
引入JDBC驅(qū)動(dòng)程序
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${version}</version> </dependency>
JDBC驅(qū)動(dòng)程序版本選擇
5.1.**版本
- 建議使用。
- 長(zhǎng)期維護(hù)更新的版本,最新一版是Jul, 2019維護(hù)的5.1.48版本。
- 對(duì)應(yīng)mysql版本5.6、5.7、8.0都可以放心使用
6.0.**版本
- 禁止使用。
- 只有幾個(gè)release版本,沒有安全感,已經(jīng)有一段時(shí)間不維護(hù)。
- 與5.1.**存在一些兼容性的問題。
8.0.**版本
- 酌情使用。
- 尚未經(jīng)過驗(yàn)證,該版本主要為了兼容mysql8.0。
- 更新十分頻繁。
- 需要JDK8以上。
Maven 倉庫
Mysql版本建議
- 選擇6個(gè)月以上的穩(wěn)定版,選擇開源的社區(qū)版的穩(wěn)定版GA版本。
- 考慮開發(fā)人員開發(fā)程序使用的版本是否兼容你選的版本。
- 優(yōu)先企業(yè)非核心業(yè)務(wù)采用新版本的數(shù)據(jù)庫GA版本軟件。
- 需要嘗試新特性的,多關(guān)注Mysql的版本發(fā)布通知。
- 用到JSON等新特性的,可以考慮5.7。
- 保守的可以選擇5.6。
- 一般云服務(wù)提供的版本大多是5.6、5.7。
JDBC連接池選擇
選擇連接池時(shí),需要考慮的因素很多,比如綜合性能,可靠性,穩(wěn)定性,擴(kuò)展性等。網(wǎng)上也有很多測(cè)評(píng)的文章,這里不多做介紹,把結(jié)論說一下。
參考
Druid之各種連接池性能對(duì)比測(cè)試
HikariCP基準(zhǔn)測(cè)試
性能
- hikariCP>druid>tomcat-jdbc>dbcp>c3p0
- hikariCP 的性能十分優(yōu)異,號(hào)稱java平臺(tái)最快的數(shù)據(jù)庫連接池。
- hikariCP在并發(fā)較高的情況下,性能基本上沒有下降。
- 從字節(jié)碼的維度優(yōu)化代碼。讓方法盡量在35個(gè)字節(jié)碼一下,來提升jvm的處理效率。 (default inline threshold for a JVM running the server Hotspot compiler is 35 bytecodes )
擴(kuò)展性
- 阿里巴巴出品的druid功能最為全面。
- 可視化監(jiān)控,統(tǒng)計(jì)數(shù)據(jù)較為全面。
- 當(dāng)然,如果使用的是云數(shù)據(jù)庫,云數(shù)據(jù)庫已經(jīng)自帶了大量監(jiān)控指標(biāo)。
總結(jié)
如果對(duì)監(jiān)控和跟蹤沒有要求,可以使用hikariCP, 如果有監(jiān)控方面的需求,可以使用druid。我公司主要是用云數(shù)據(jù)庫,所以基本都是使用hikariCP,優(yōu)化一下配置,性能會(huì)很棒。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Lombok中@Builder和@SuperBuilder注解的用法案例
@Builder?是?lombok?中的注解,可以使用builder()構(gòu)造的Person.PersonBuilder對(duì)象進(jìn)行鏈?zhǔn)秸{(diào)用,給所有屬性依次賦值,這篇文章主要介紹了Lombok中@Builder和@SuperBuilder注解的用法,需要的朋友可以參考下2023-01-01ShardingSphere結(jié)合MySQL實(shí)現(xiàn)分庫分表的項(xiàng)目實(shí)踐
在實(shí)際開發(fā)中,如果表的數(shù)據(jù)過大我們需要把一張表拆分成多張表,本文主要介紹了使用ShardingSphere實(shí)現(xiàn)MySQL分庫分表,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03SpringBoot生產(chǎn)環(huán)境和測(cè)試環(huán)境配置分離的教程詳解
這篇文章主要介紹了SpringBoot生產(chǎn)環(huán)境和測(cè)試環(huán)境配置分離的教程詳解,需要的朋友可以參考下2020-08-08SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析
這篇文章主要介紹了SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12