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

相關文章
相關標籤/搜索