MySQL 8.0.18 GA 正式發佈!

MySQL Server 8.0.18、5.7.28 和 5.6.46 已於2019年10月14日正式發佈。MySQL 開發團隊也第一時間發佈了更新說明文章。以下是原文翻譯。

原文:《The MySQL 8.0.18 Maintenance Release is Generally Available》
https://mysqlserverteam.com/t...
作者:Geir Hoydalsvik
翻譯:管長龍

MySQL 開發團隊非常高興地宣佈,MySQL 8.0.18 現在可以從 dev.mysql.com 下載了。除了 bug 修復,此版本中還添加了一些新功能。請從 dev.mysql.com 或 Yum、APT、SUSE 庫等途徑下載 8.0.18。源代碼在GitHub上。您可以在 8.0.18 發行說明中找到更改和 bug 修復的完整列表。以下是重點!

SQL(語句)

Hash Join (WL#2241) 此功能由 Erik Froseth 實現,爲在 MySQL 中執行內部等價聯接的一種方式。
例如:SELECT*FROM t1 JOIN t2 ON t1.col1=t2.col1;
可以在 8.0.18 中作爲 Hash Join 執行。Hash Join 不需要任何索引來執行,並且在大多數情況下比當前的塊嵌套循環算法更有效。
EXPLAIN ANALYZE (WL#4168) 此功能由 Steinar H. Gunderson實現。EXPLAIN ANALYZE 將運行查詢,然後生成 EXPLAIN 輸出,以及有關優化程序估計如何與實際執行相匹配的其他信息。EXPLAIN ANALYZE 在新的迭代器執行程序的基礎上構建,並在實際迭代器的頂部實現定時迭代器,從而提供有關每次調用的精確信息。對於每個迭代器,我們提供估計的執行成本,估計的返回行數,返回第一行的時間,返回所有行的時間(即實際成本),此迭代器返回的行數以及循環次數。整個查詢執行以樹形結構表示,其中節點是迭代器。
Iterator UNION (WL#13000) 此功能由 Steinar H. Gunderson 實現。UNION,UNION ALL,WITH RECURSIVE 和不合格 SELECT COUNT(*) 會在新的迭代框架執行。
將類型轉換節點注入到項目樹中,以避免數據類型不匹配 (WL# 12108) 此功能由 Catalin Besleaga 實現。將表達式和條件內的隱式類型轉換操作添加到項目樹中,判斷這些表達式和條件在提供的參數的數據類型與預期數據之間是否存在不匹配類型。此方法對用戶沒有可見的影響。

GIS(地理信息系統)

任何幾何類型值之間的橢球模型 ST_Distance (WL#12216) 此功能由 Torje Digernes 實現。對地理幾何的距離測量,從單點到多個點的支持 (WL#9347) 擴展到單點,線,多邊形,多個點,多個線,多個多邊形的幾乎所有幾何組合的集合 (WL#12216)。

Only OpenSSL(SSL類型庫)

從 MySQL 代碼庫中刪除對 wolfSSL 和 yaSSL 的支持 (WL#13290 和 WL#13289) 此功能由 Kristofer Älvring 實現。展望未來,MySQL 將僅使用 OpenSSL 作爲其 SSL / TLS 庫。

Password(加密)

創建用戶可用隨機密碼 (WL#11772) 此功能由 KristoferÄlvring 實現。CREATE USER / ALTER USER / SET PASSWORD 語句添加語法,以生成強隨機密碼,並將其作爲結果集行返回給客戶端。此功能使用戶更容易創建強密碼。添加的語法是:

CREATE USER user IDENTIFIED BY RANDOM PASSWORD;
ALTER USER user IDENTIFIED BY RANDOM PASSWORD;
SET PASSWORD [FOR user] TO RANDOM;

Compression(壓縮)

壓縮協議可在配置中指定 (WL#12475 和 WL#12039) 此功能由 Bharathy Satish 和 Thayumanavar X 撰寫。Sachithanantha 擴展了MySQL 協議,以處理更多的客戶端-服務器壓縮選項,而不僅僅是 zlib。客戶端和服務器之間的初始握手連接將基於新的功能標誌選擇兩者都支持的最佳壓縮方法。壓縮方法將由客戶端和服務器選項的交集定義。兩者都可以是 zlib,zstd 和 uncompressed 的任何組合。壓縮的優先順序爲 zlib,zstd,uncompressed。
即,如果服務器具有“uncompressed ,zstd”,而客戶端具有“ zlib,zstd,uncompressed”,則將使用 zstd 協議。也可以指定 zstd 的壓縮級別。此功能基於 Facebook 的貢獻,請參見 bug#88567。

Replication(複製)

具有受限特權的複製 (WL#12966) Pedro Figueiredo,Abhinav Agarwal 和 Neha Kumari 在複製通道上實現了特權檢查。其動機是實現從不受信任的源到受信任的目標之間的安全複製,即建立從安全邊界的“外部”到“內部”的複製流。

Group Replication(組複製)

將 OFFLINE_MODE 添加到 group_replication_exit_state_action (WL#12895) 此功能由 Nuno Carvalho 實現。該 group_replication_exit_state_action 選項用於指定當服務器無意離開組時組複製的行爲。新 OFFLINE_MODE 行爲將關閉所有連接,並禁止不具有 CONNECTION_ADMIN 或 SUPER 特權的用戶建立新連接,否則它的行爲類似於現有 READ_ONLY 模式。
TLS 1.3支持 (WL#12990) 由 Tiago Jorge 和 Tiago Vale 在 GCS / XCom 層中實現了 TLS 1.3 支持。這樣就可以在組複製中的所有組成員之間使用 TLS 1.3 來確保通信的安全。
傳遞消息服務 (WL#12896) 由 Anibal Pinto 實現。MySQL 模塊可以使用該服務通過組複製的現有組通信連接,將帶有標識標籤的通用消息傳輸給所有組成員。此方法對用戶沒有可見的影響。

Router(路由)

前置的 MySQL 路由密鑰環 (WL#12974) 由 Jan Kneschke 實現。它允許 Router 管理用戶列出存儲在密鑰環中的帳戶,從密鑰環中刪除帳戶,更改密鑰環中帳戶的密碼以及更改密鑰。主密鑰環中的文件名位置。
在路由日誌中添加可選的時間戳解析度 (WL#11194) 由 Thomas Nielsen 實現了路由日誌文件亞秒級的時間戳精度。時間戳精度可以使用路由配置文件進行配置。

MTR(測試套件)

將測試用例移動到單獨的 .test 文件,將需要 MyISAM 中的 rpl 套件 (WL#13053) 中,由 Pooja Lamba實現。這使 MTR 測試套件可以在沒有MyISAM 引擎的情況下在服務器上運行。

Other(其它)

InnoDB:添加新選項以在空閒時控制寫 IOPS (WL#13115) Mayank Prasad 實現了新選項 innodb_idle_flush_pct,該選項在 InnoDB 空閒時控制寫 IOPS。目的是減少寫 IO,以延長閃存的壽命。此功能基於 Facebook 的貢獻,請參見 bug#88566 。
動態鏈接 Protobuf(WL#13126) Tor Didriksen 改變了 Protobuf 與服務器的鏈接方式。SQL 開發人員希望在 XPlugin 之外(例如在複製中)使用 Protobuf。這是不可能的,因爲 Protobuf 不能與一個以上的組件進行靜態鏈接,因爲它保持內部狀態。解決方案是動態鏈接它。
加大 max_prepared_stmt_count 最大值 (WL#13342) Tor Didriksen 增加了最大值 max_prepared_stmt_count 從 1048576 到 4194304。默認爲 16K。
將 sys Schema 移至 mysql server中 (WL#12673) Christopher Powers 將 sys Schema 的源代碼移至主服務器存儲庫中,並且通常將 sys Schema 實現與服務器集成在一起。這是內部簡化,沒有外部影響。
錯誤消息參數的編譯時檢查 (WL#13110) Jens EvenBlomsøy 實現了CMake 配置選項,可在編譯時檢查錯誤消息參數的數量和類型。默認情況下,選項 -DCHECK_ERRMSG_FORMAT 爲 OFF。其動機是使開發人員能夠在編譯時檢測錯誤,而不是在運行時獲取意外錯誤。

Deprecation and Removal(棄用和移除)

MySQL 8.0.18 不會刪除任何功能,但會將某些功能標記爲 8.0 中已棄用。不推薦使用的功能將在將來的主要版本中刪除。
在libmysql中棄用 MYSQL_PWD 環境變量的使用 (WL#13449) Georgi Kodinov 實現,即如果沒有提供密碼,libmysql 將從 OS 環境變量 MYSQL_PWD 中讀取密碼。不鼓勵使用此功能,因爲環境變量可以由本地用戶檢查。要求用戶使用其他更安全的機制來存儲密碼。
棄用 --relay-log-info-file--master-info-file (WL#11031)LuísSoares 解決了這兩個選項缺少棄用警告的事實。這些應該已經分別與其“父”選項 relay_log_info_repository=FILEmaster_info_repository=FILE 一起棄用。
棄用 slave-rows-search-algorithms (WL#12892) 選項 slave-rows-search-algorithms 選項控制複製應用程序在應用 UPDATE 或 DELETE 行事件時如何查找表中的行。從 8.0 開始,此選項的默認值爲 HASH_SCAN 和 INDEX_SCAN,這對於性能和正確性而言始終是最佳的。因此,最好不要使用替代算法。
棄用 log_bin_use_v1_row_events (WL#12926) 當用戶設置或讀取log_bin_use_v1_row_events的值時棄用警告。當前默認值爲 V2 行事件。V2 是 MySQL 5.6 中引入的,從那時起,MySQL 可以解析和解釋 v1 和 v2 行事件。
棄用 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS函數(WL#13178)當用戶使用 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS函數時,實現了棄用警告。該警告指出,用戶應使用 WAIT_FOR_EXECUTED_GTID_SET 而不是 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS。前者取代後者。

感謝您使用 MySQL!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章