MySQL8.0.24版本Release Note的一些改進點

      4月20號,MySQL8.0更新瞭8.0.24這個版本,晚上看瞭下release note,整理瞭一些改進點,記錄在這裡,後續可以下載對應的版本進行測試。    

一、連接管理

1、連接信息更詳細

之前版本中,如果一個MySQL連接長時間沒有和MySQL服務進行交互,則會收到一個MySQL Server has gone away的輸出,沒有具體的原因信息;

新版的MySQL Server會在連接關閉之前將連接關閉的原因寫入到客戶端,客戶端能夠看到更加詳細的信息,來分析為什麼連接被關閉。

2、連接錯誤信息裡面包含port

這點主要是連接報錯信息的改變,多瞭個端口信息:

修改前:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (10061)
修改後:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1:63333'

二、優化器層面的改進

MySQL的查詢優化器現在可以通過外部連接的方法來優化包含派生表的子查詢。如果子查詢已經具有顯式分組,則MySQL會將額外的分組添加到現有分組列表的末尾。

舉例如下:

SQL:
SELECT * FROM t1 WHERE (SELECT a FROM t2 WHERE t2.a=t1.a) > 0
優化後:
SELECT t1.* FROM t1 LEFT OUTER JOIN (SELECT a, COUNT(*) AS ct FROM t2 GROUP BY a) AS derived ON t1.a = derived.a WHERE derived.a > 0.

三、功能層面的改進

1、AUTOEXTEND_SIZE最大值從64MB增加到4GB,這個選項是MySQL8.0.23引入的,定義瞭當表空間滿的時候,innodb最大能夠擴展的容量,這個參數可以在create table、alter table、create tablespace、alter tablespace等語法中使用到

2、clone_donor_timeout_after_network_failure克隆插件變量定義瞭克隆插件中donor允許接收者在網絡故障後重新連接並重新開始克隆的時間。這個超時時間先前固定為5分鐘。現在可以將超時延長至30分鐘,以提供更多時間來解決網絡問題。

3、客戶端應用現在使用set names語法的時候,如果字符集是utf8,則會顯示為utf8mb3,而不是utf8.

其實這個改變是意料之中的,畢竟utf8mb4已經慢慢替代utf8成為主流瞭。

4、可以在MGR運行的過程中更新allowlist 的值,將新成員添加到MGR的allowlist中無需再重新啟動MGR

5、–skip-slave-start參數的作用是防止MySQL服務重啟的時候自動啟動復制關系,在之前的版本中,修改這個參數可以在my.cnf中修改或者命令行中添加參數的方法,這兩種方法都不可避免的要登錄到MySQL Server所在的host服務器上,新版MySQL中,該參數將不受此限制,可以使用持久化配置文件set persist_only語句進行設置,這樣,就可以從任何一個客戶端上去執行修改。而不必登錄MySQL服務所在的host機器。

四、Performance Schema優化

      這塊兒沒有做太多的研究,有興趣的可以去官網查看。

五、bug修復

      整體上,這個版本主要是修復之前版本的bug,修復瞭200多個bug,在MGR等高可用組件上沒有特別多的更新。

說到瞭bug修復,這裡還分享一個MySQL選擇小版本選擇思路:

一般情況下,查看當前MySQL版本的release note,如果發現當前版本的release note中修復的bug比較少,說明上一個版本中的bug比較少,那麼選擇當前版本的上一個MySQL版本或者選擇當前版本,都會比較合適,優先選擇當前版本,因為新版本可能會有新的特性;

如果當前版本的修復的bug很多,說明上一個版本中bug很多,不建議選擇,而當前版本修復瞭很多bug,也不能保證穩定,所以還是建議觀望或者再往前找合適的MySQL版本。

以上就是MySQL8.0.24版本Release Note的一些改進點的詳細內容,更多關於MySQL Release Note的改進的資料請關註WalkonNet其它相關文章!