最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL和MySQL驅(qū)動mysql-connector-java升級到8.0.X版本問題

 更新時間:2023年02月27日 10:38:07   作者:心動的偏執(zhí)  
這篇文章主要介紹了MySQL和MySQL驅(qū)動mysql-connector-java升級到8.0.X版本問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、MySQL升級到8.0.X版本

1、升級的原因及MySQL8.0版本新特性

比MySQL 5.7快2倍,僅這一個理由就夠了,而且還有其他許多很好的新特性:

1. 性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在以下方面帶來了更好的性能:讀/寫工作負載、IO 密集型工作負載、以及高競爭("hot spot"熱點競爭問題)工作負載。

2. NoSQL:MySQL 從 5.7 版本開始提供 NoSQL 存儲功能,目前在 8.0 版本中這部分功能也得到了更大的改進。該項功能消除了對獨立的 NoSQL 文檔數(shù)據(jù)庫的需求,而 MySQL 文檔存儲也為 schema-less 模式的 JSON 文檔提供了多文檔事務支持和完整的 ACID 合規(guī)性。

3. 窗口函數(shù)(Window Functions):從 MySQL 8.0 開始,新增了一個叫窗口函數(shù)的概念,它可以用來實現(xiàn)若干新的查詢方式。窗口函數(shù)與 SUM()、COUNT() 這種集合函數(shù)類似,但它不會將多行查詢結(jié)果合并為一行,而是將結(jié)果放回多行當中。即窗口函數(shù)不需要 GROUP BY。

4. 隱藏索引:在 MySQL 8.0 中,索引可以被“隱藏”和“顯示”。當對索引進行隱藏時,它不會被查詢優(yōu)化器所使用。我們可以使用這個特性用于性能調(diào)試,例如我們先隱藏一個索引,然后觀察其對數(shù)據(jù)庫的影響。如果數(shù)據(jù)庫性能有所下降,說明這個索引是有用的,然后將其“恢復顯示”即可;如果數(shù)據(jù)庫性能看不出變化,說明這個索引是多余的,可以考慮刪掉。

5. 降序索引:MySQL 8.0 為索引提供按降序方式進行排序的支持,在這種索引中的值也會按降序的方式進行排序。

6. 通用表表達式(Common Table Expressions CTE):在復雜的查詢中使用嵌入式表時,使用 CTE 使得查詢語句更清晰。

7. UTF-8 編碼:從 MySQL 8 開始,使用 utf8mb4 作為 MySQL 的默認字符集。

8. JSON:MySQL 8 大幅改進了對 JSON 的支持,添加了基于路徑查詢參數(shù)從 JSON 字段中抽取數(shù)據(jù)的 JSON_EXTRACT() 函數(shù),以及用于將數(shù)據(jù)分別組合到 JSON 數(shù)組和對象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函數(shù)。

9. 可靠性:InnoDB 現(xiàn)在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以實現(xiàn)事務完整性了,要么失敗回滾,要么成功提交,不至于出現(xiàn) DDL 時部分成功的問題,此外還支持 crash-safe 特性,元數(shù)據(jù)存儲在單個事務數(shù)據(jù)字典中。

10. 高可用性(High Availability):InnoDB 集群為您的數(shù)據(jù)庫提供集成的原生 HA 解決方案。

11. 安全性:對 OpenSSL 的改進、新的默認身份驗證、SQL 角色、密碼強度、授權(quán)。

詳細更新說明:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html

官方發(fā)布說明:https://blogs.oracle.com/mysql/announcing-general-availability-of-mysql-80

MySQL 8 正式版的新增功能:https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/

參考資料:https://www.cnbeta.com/articles/soft/718465.htm

2、下載MySQL

官網(wǎng):https://dev.mysql.com/downloads/mysql/

到官網(wǎng),下載MySQL Community Server,這個是日常使用版本,選擇要安裝的操作系統(tǒng),下載對應的安裝包,下載最新的穩(wěn)定版本即可。

3、備份數(shù)據(jù)

保留數(shù)據(jù)SQL腳本,沒有的話導出,可以使用Navicat等工具進行備份。

4、卸載原版本MySQL

直接按照普通軟件卸載的方式卸載即可。

5、安裝下載的新版本

8.0和以前比較安裝步驟簡單了許多,一步一步安裝即可。

6、MySQL升級后的兼容性問題

兼容性還是可以的,目前為止筆者還沒遇到有兼容問題。

雖然網(wǎng)上說會有一點兼容問題,但是還是應該升級,不能因噎廢食,利益明顯大于弊端。當然也要考慮實際情況,最好不要在版本忙碌期間進行,可以選擇一個不是很忙的版本,最為一個事項來做升級,然后進行充分驗證和修改,保證升級后的功能正常。

二、升級MySQL驅(qū)動mysql-connector-java升級到8.0.X版本

1、為什么要升級驅(qū)動版本

筆者原來安裝MySQL后,驅(qū)動沒升級,使用的mysql-connector-java 5.1.47,驗證功能也沒問題,能夠連接數(shù)據(jù)庫。

但是一定要升級,升級后使用新的驅(qū)動類,無論是啟動加載速度還是數(shù)據(jù)庫查詢速度性能都有明顯提升。

筆者本地弄了個實例,對比了下,雖然數(shù)據(jù)量小,差距不明顯,但是還是明顯看到性能提升:

2、升級版本

直接下載最新版本jar包或,修改引用的版本號??梢缘絤aven的一些搜索網(wǎng)站(如https://mvnrepository.com/)進行搜索可用版本。

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>

3、修改配置

1、驅(qū)動類變了,原來是由原來的com.mysql.jdbc.Driver改為com.mysql.cj.jdbc.Driver

不修改會影響性能,啟動過程中有告警:

Loading class `com.mysql.jdbc.Driver’. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

修改后的驅(qū)動程序通過SPI自動注冊,通常不需要手動加載驅(qū)動程序類。

2、jdbc_url上的時區(qū)變?yōu)楸仨毰渲?,否則會啟動報錯

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘?й???’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

如:

jdbc:mysql://localhost:3306/dbname?characterEncoding=utf-8&useSSL=true&serverTimezone=GMT

4、mysql-connector-java升級到8.0之后的一些兼容問題

基本還是兼容的,但是有一些不兼容的地方,目前已經(jīng)筆者知道的有2點:

1、如果數(shù)據(jù)庫表自增主鍵id是bigint類型,原來版本執(zhí)行后返回的id是Long類型,現(xiàn)在改為了BigInteger類型,如果是使用mybatis基本沒問題;如果是自定義的JDBC框架就要格外注意看處理是否有問題,類型是否存在不匹配導致問題。

2、日期類型的字段處理可能存在問題,如表中字段為TIMESTAMP,之前查詢返回能夠返回毫秒值,升級后不再返回。如果在查詢時有使用日期轉(zhuǎn)換函數(shù)轉(zhuǎn)換為String,并且對毫秒值進行了處理,那么升級后會報錯,需要去掉對毫秒值得處理。如果查詢返回直接映射為Date就沒問題。

三、MySQL8.0和5.7性能對比

有一份做的很好的性能對比資料,筆者這里就不做重復工作了,參考這個資料可以看出性能提升是實實在在的。

資料地址:https://severalnines.com/blog/mysql-performance-benchmarking-mysql-57-vs-mysql-80

轉(zhuǎn)載自上面資料的性能對比圖:

1、InnoDB Row Operations

2、Transactions Processed

3、CPU Resources

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MySQL預編譯語句過多告警排查及解決方案

    MySQL預編譯語句過多告警排查及解決方案

    在使用Spring Cloud Alibaba搭建的微服務架構(gòu)中,項目采用ShardingSphere進行分庫分表,MyBatis-Plus作為持久層,線上環(huán)境突發(fā)大量預編譯語句過多的數(shù)據(jù)庫告警,導致系統(tǒng)性能下降,所以本文給大家介紹了MySQL預編譯語句過多告警排查及解決方案,需要的朋友可以參考下
    2025-01-01
  • 解決MySQL深度分頁的問題

    解決MySQL深度分頁的問題

    本文主要介紹了解決MySQL深度分頁的問題,深度分頁可以有效提高深度分頁的查詢性能,優(yōu)化策略需要根據(jù)具體場景進行選擇,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • MySql二進制連接方式詳解

    MySql二進制連接方式詳解

    這篇文章主要介紹了MySql二進制連接方式詳解的相關資料,需要的朋友可以參考下
    2016-05-05
  • MySQL編碼不一致可能引起的一些問題

    MySQL編碼不一致可能引起的一些問題

    這篇文章主要給大家介紹了關于MySQL編碼不一致可能引起的一些問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • MySQL中處理各種重復的一些方法

    MySQL中處理各種重復的一些方法

    這篇文章主要介紹了MySQL中處理各種重復的一些方法,包括對表和查詢結(jié)果的重復的一些處理,需要的朋友可以參考下
    2015-05-05
  • mysql8.0.20數(shù)據(jù)目錄遷移的方法

    mysql8.0.20數(shù)據(jù)目錄遷移的方法

    這篇文章主要介紹了mysql8.0.20數(shù)據(jù)目錄遷移的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • MySQL獲取系統(tǒng)性能和狀態(tài)代碼

    MySQL獲取系統(tǒng)性能和狀態(tài)代碼

    使用MySQL獲取系統(tǒng)性能和狀態(tài)的代碼片段,由此需求的朋友可以參考下,希望對大家有所幫助
    2013-07-07
  • MySQL存儲函數(shù)以及觸發(fā)器詳解

    MySQL存儲函數(shù)以及觸發(fā)器詳解

    這篇文章詳細給大家介紹了MySQL-SQL存儲函數(shù)以及觸發(fā)器,文中有詳細的代碼示例,對我們學習MySQL有一定的幫助,感興趣的朋友可以參考閱讀下
    2023-06-06
  • mysql 備份與遷移 數(shù)據(jù)同步方法

    mysql 備份與遷移 數(shù)據(jù)同步方法

    以前要做mysql的備份,我往往都是利用 EMS SQL Manager 實現(xiàn)導出 sql腳本文件,或者導出dbf 文件。而要把本地數(shù)據(jù)庫遷移到遠程直接把腳本在服務端執(zhí)行就OK。
    2009-10-10
  • mysql 8.0.11安裝配置方法圖文教程

    mysql 8.0.11安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.11安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評論

松江区| 金坛市| 广宗县| 明溪县| 昭通市| 井冈山市| 正镶白旗| 棋牌| 四子王旗| 新平| 区。| 林西县| 保定市| 凯里市| 独山县| 萨嘎县| 海丰县| 岳阳县| 甘南县| 洛浦县| 双柏县| 新乡县| 北川| 淮阳县| 宜兰县| 拉萨市| 光泽县| 清河县| 通州市| 沁阳市| 普格县| 沙田区| 界首市| 石屏县| 德钦县| 高尔夫| 东台市| 利川市| 阿坝县| 乐平市| 鸡东县|