MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn)
4月20號(hào),MySQL8.0更新了8.0.24這個(gè)版本,晚上看了下release note,整理了一些改進(jìn)點(diǎn),記錄在這里,后續(xù)可以下載對應(yīng)的版本進(jìn)行測試。
一、連接管理
1、連接信息更詳細(xì)
之前版本中,如果一個(gè)MySQL連接長時(shí)間沒有和MySQL服務(wù)進(jìn)行交互,則會(huì)收到一個(gè)MySQL Server has gone away的輸出,沒有具體的原因信息;
新版的MySQL Server會(huì)在連接關(guān)閉之前將連接關(guān)閉的原因?qū)懭氲娇蛻舳?,客戶端能夠看到更加詳?xì)的信息,來分析為什么連接被關(guān)閉。
2、連接錯(cuò)誤信息里面包含port
這點(diǎn)主要是連接報(bào)錯(cuò)信息的改變,多了個(gè)端口信息:
修改前: 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'
二、優(yōu)化器層面的改進(jìn)
MySQL的查詢優(yōu)化器現(xiàn)在可以通過外部連接的方法來優(yōu)化包含派生表的子查詢。如果子查詢已經(jīng)具有顯式分組,則MySQL會(huì)將額外的分組添加到現(xiàn)有分組列表的末尾。
舉例如下:
SQL: SELECT * FROM t1 WHERE (SELECT a FROM t2 WHERE t2.a=t1.a) > 0 優(yōu)化后: 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.
三、功能層面的改進(jìn)
1、AUTOEXTEND_SIZE最大值從64MB增加到4GB,這個(gè)選項(xiàng)是MySQL8.0.23引入的,定義了當(dāng)表空間滿的時(shí)候,innodb最大能夠擴(kuò)展的容量,這個(gè)參數(shù)可以在create table、alter table、create tablespace、alter tablespace等語法中使用到
2、clone_donor_timeout_after_network_failure克隆插件變量定義了克隆插件中donor允許接收者在網(wǎng)絡(luò)故障后重新連接并重新開始克隆的時(shí)間。這個(gè)超時(shí)時(shí)間先前固定為5分鐘。現(xiàn)在可以將超時(shí)延長至30分鐘,以提供更多時(shí)間來解決網(wǎng)絡(luò)問題。
3、客戶端應(yīng)用現(xiàn)在使用set names語法的時(shí)候,如果字符集是utf8,則會(huì)顯示為utf8mb3,而不是utf8.
其實(shí)這個(gè)改變是意料之中的,畢竟utf8mb4已經(jīng)慢慢替代utf8成為主流了。
4、可以在MGR運(yùn)行的過程中更新allowlist 的值,將新成員添加到MGR的allowlist中無需再重新啟動(dòng)MGR
5、--skip-slave-start參數(shù)的作用是防止MySQL服務(wù)重啟的時(shí)候自動(dòng)啟動(dòng)復(fù)制關(guān)系,在之前的版本中,修改這個(gè)參數(shù)可以在my.cnf中修改或者命令行中添加參數(shù)的方法,這兩種方法都不可避免的要登錄到MySQL Server所在的host服務(wù)器上,新版MySQL中,該參數(shù)將不受此限制,可以使用持久化配置文件set persist_only語句進(jìn)行設(shè)置,這樣,就可以從任何一個(gè)客戶端上去執(zhí)行修改。而不必登錄MySQL服務(wù)所在的host機(jī)器。
四、Performance Schema優(yōu)化
這塊兒沒有做太多的研究,有興趣的可以去官網(wǎng)查看。
五、bug修復(fù)
整體上,這個(gè)版本主要是修復(fù)之前版本的bug,修復(fù)了200多個(gè)bug,在MGR等高可用組件上沒有特別多的更新。
說到了bug修復(fù),這里還分享一個(gè)MySQL選擇小版本選擇思路:
一般情況下,查看當(dāng)前MySQL版本的release note,如果發(fā)現(xiàn)當(dāng)前版本的release note中修復(fù)的bug比較少,說明上一個(gè)版本中的bug比較少,那么選擇當(dāng)前版本的上一個(gè)MySQL版本或者選擇當(dāng)前版本,都會(huì)比較合適,優(yōu)先選擇當(dāng)前版本,因?yàn)樾掳姹究赡軙?huì)有新的特性;
如果當(dāng)前版本的修復(fù)的bug很多,說明上一個(gè)版本中bug很多,不建議選擇,而當(dāng)前版本修復(fù)了很多bug,也不能保證穩(wěn)定,所以還是建議觀望或者再往前找合適的MySQL版本。
以上就是MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn)的詳細(xì)內(nèi)容,更多關(guān)于MySQL Release Note的改進(jìn)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mysql could not be resolved: Name or service not known
今天查看mysql日志的時(shí)候發(fā)現(xiàn)[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known,原來是mysql DNS反解:skip-name-resolve的原因,屏蔽一下就可以了2015-08-08MySQL報(bào)錯(cuò):sql_mode=only_full_group_by的4種輕松解決方法(含舉例)
今天學(xué)mysql函數(shù)的時(shí)候在自己服務(wù)器上的MySQL碰見了個(gè)奇怪的問題,下面這篇文章主要給大家介紹了關(guān)于MySQL報(bào)錯(cuò):sql_mode=only_full_group_by的4種輕松解決方法,需要的朋友可以參考下2023-01-01解決Mysql報(bào)Invalid default value for ''''operate_time''''錯(cuò)誤的問題
這篇文章主要介紹了解決Mysql報(bào)Invalid default value for 'operate_time'錯(cuò)誤的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02FROM_UNIXTIME 格式化MYSQL時(shí)間戳函數(shù)
對MYSQL沒有進(jìn)行過深入的研究,基礎(chǔ)知識(shí)匱乏,一遇到問題只能手冊,看來要把MYSQL的學(xué)習(xí)安排進(jìn)時(shí)間表了。2011-04-04MySQL服務(wù)無法啟動(dòng)且服務(wù)沒有報(bào)告任何錯(cuò)誤的解決辦法
在啟動(dòng)項(xiàng)目時(shí),發(fā)現(xiàn)昨天能夠跑的項(xiàng)目今天跑不了了,一看原來是mysql數(shù)據(jù)庫出現(xiàn)了問題,下面這篇文章主要給大家介紹了關(guān)于MySQL服務(wù)無法啟動(dòng)且服務(wù)沒有報(bào)告任何錯(cuò)誤的解決辦法,需要的朋友可以參考下2023-05-05MySQL存儲(chǔ)過程中實(shí)現(xiàn)執(zhí)行動(dòng)態(tài)SQL語句的方法
這篇文章主要介紹了MySQL存儲(chǔ)過程中實(shí)現(xiàn)執(zhí)行動(dòng)態(tài)SQL語句的方法,實(shí)例分析了MySQL中構(gòu)造及執(zhí)行動(dòng)態(tài)SQL語句的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07