MySQL最新版本8.0.20正式釋出。與之前8.0的系列版本一樣,這次的發行版除了包含缺陷修復,也同樣包括新功能。下面快速瀏覽一下。
關鍵字:hash join、InnoDB雙寫緩衝、二進位制日誌事務壓縮。
增加了SHOW_ROUTINE
許可權。使用該許可權允許賬戶在最小許可權下備份儲存程式。
改進hash join。現在可以使用hash join代替BNL,hash join現在支援半連線、反連線、外連線。
加入新的索引級別的最佳化器提示。包括:JOIN_INDEX
、NO_JOIN_INDEX
、GROUP_INDEX
、NO_GROUP_INDEX
、ORDER_INDEX
、NO_ORDER_INDEX
、INDEX
及 NO_INDEX
。新的索引級別的最佳化器提示可以搭配SELECT
, UPDATE
和 DELETE
語句使用,而以往的無法和DELETE
一起使用。
Performance Schema改良。為了減少錯誤檢測的記憶體開銷,Performance Schema放棄了在全域性範圍收集會話相關的錯誤統計資訊。此外,針對每個執行緒,帳戶,使用者或主機報告的錯誤摘要中不再包含全域性的錯誤資訊。
SQL語法改良。以前,語句的INTO
子句 SELECT
可能出現在以下兩個位置之一:
SELECT * INTO OUTFILE 'file_name' FROM table_name;
SELECT * FROM table_name INTO OUTFILE 'file_name' FOR UPDATE;
現在,INTO
可以出現在SELECT
的最後:
SELECT * FROM table_name FOR UPDATE INTO OUTFILE 'file_name';
此外,還針對進行 UNION
的 INTO
進行了一些更改,下面的語句結果相同:
... UNION SELECT * FROM table_name INTO OUTFILE 'file_name';
... UNION (SELECT * FROM table_name) INTO OUTFILE 'file_name';
... UNION SELECT * INTO OUTFILE 'file_name' FROM table_name;
... UNION (SELECT * INTO OUTFILE 'file_name' FROM table_name);
X Plugin改良。在啟動中建立管理會話,以供達到客戶端連線限制時獲取伺服器配置。初始化後立即可以訪問MySQL系統變數等缺陷修復。
BLOB型別排序改變。改變了以往的非完整排序,伺服器將BLOB型別轉換為打包的外掛進行排序,經測試,效能得到顯著提升。
InnoDB改良。雙寫緩衝區的儲存從系表空間移至雙寫檔案。將雙寫緩衝區儲存區移出系統表空間可減少寫延遲,增加吞吐量並在雙寫緩衝區頁的放置方面提供靈活性。
二進位制日誌事務壓縮。從MySQL 8.0.20開始,您可以在MySQL伺服器例項上啟用二進位制日誌事務壓縮。啟用二進位制日誌事務壓縮後,將使用zstd演算法壓縮事務有效負載,然後將其作為單個事件(Transaction_payload_event
)寫入伺服器的二進位制日誌檔案 。壓縮後的事務有效負載在複製流中傳送到從伺服器,其他群組複製組成員或客戶端(例如mysqlbinlog)時,保持壓縮狀態 。它們不會被接收器執行緒解壓縮,並且仍以其壓縮狀態寫入中繼日誌。因此,二進位制日誌事務壓縮既可以節省事務的始發者,也可以節省接收者(及其備份)的儲存空間,並在伺服器例項之間傳送事務時節省網路頻寬。
CHANGE MASTER TO
語句的新選項REQUIRE_TABLE_PRIMARY_KEY_CHECK
使複製的從伺服器可以選擇自己的策略來進行主鍵檢查。
MySQL 8.0.19開始,透過X協議連線傳送的訊息已支援壓縮。MySQL 8.0.19開始,透過X協議連線傳送的訊息已支援壓縮。在MySQL 8.0.19中,X協議對每種演算法使用庫預設壓縮級別,客戶端無法協商該預設壓縮級別。從MySQL 8.0.20開始,客戶端可以在協商期間為X協議連線請求特定的壓縮級別。
上面內容為MySQL8.0.20的新功能快速一覽,可以訪問MySQL的線上手冊獲取完整的最新資訊
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html
[admin
]