MySQL 9.4 創新版 (Innovation) 正式發布,帶來重大特性和修復,本次更新涵蓋字元集支援、防火牆元件、InnoDB 改進、JavaScript 應用程式等。
字元集支援與排序規則 (Collation)
- 修正 IFNULL() 搭配 LIKE 導致的 ER_CANT_AGGREGATE_2COLLATIONS 錯誤:將 NONE 派生排序規則強度調整得比其他更低,使比較時由對方操作數決定排序規則,且排序規則聚合目前僅考慮相同最高強度的項目,並重新命名 IGNORABLE 為 NULL。
編譯與平台改進
- 群組複製 (Group Replication):修復 TASK_EVENT_TRACE 的建構錯誤(GCS 模組)
- macOS 支援 Kerberos (-DWITH_KERBEROS) 並調整狀態緩衝區對齊,改善 M1 性能
- 升級包含的 libcurl 至 8.14.1;支援 CMake 4(不再支援 3.10 以下)
- 引入 -DWITH_PROTOBUF=system,可減少建構時間;bzip2 網路庫位置調整(-lbz2)
- GCC 最低版本要求提高至 11,因此移除對 RHEL7 ARM 的支援
移除與棄用項目
- 外掛程式(Plugin)API 正逐步淘汰,將由元件(Component)取代,相關選項如 --early-plugin-load 等會觸發警告
- 棄用 sys 變數 temptable_use_mmap,刪除 MD5() 和 SHA1() 與未來版本規劃移除
防火牆與外掛
- 新增 “MySQL 企業防火牆元件” 以取代現有插件,外掛將可能被淘汰;帳戶設定將轉為群組設定
InnoDB 優化與修正
- 改善記憶體洩漏情況與導入表相關錯誤
- 調整 innodb_change_buffer_max_size 預設值為 5,以平衡 IO 工作負載
安裝與環境注意事項
- 修復 macOS 上 keyring 元件安裝 bug(--plugin-dir vs --basedir)
- Debian/Ubuntu 安裝無需 root 權限;RHEL10/Oracle Linux10 支援 RPM / Yum 安裝
JavaScript 儲存程序(Filtering)
- 修正高記憶體使用下第一次 context.parse() 會引發 MLE 錯誤問題,改為直接拒絕請求
Logging/效能收集
- 錯誤日誌新增 CPU 線程數與實體內存資訊,提升診斷能力
向量與新功能(Vector /* Functionality Added */)
- 增加 mysql 客戶端新選項 --commands,可開啟/關閉客戶端指令執行(預設關閉)
- InnoDB 日誌中增加 buf_page_t / buf_block_t metadata 輸出,用於除錯
- 群組複製新增錯誤碼 ER_GRP_RPL_APPLIER_THD_KILLED 以區分死掉類型引發考慮
其他錯誤修正 (Bug Fixes)
- 群組複製:超過 5 分鐘無連接嘗試停止,避免無限重連
- 查詢優化改善:移除不必要條件導致效能下降的問題
- NDB Cluster 各種錯誤場景修復,包括重啟、死鎖偵測、列鎖等
- InnoDB 和其他核心模組中多項 bug 修復(如重建主鍵錯誤、記憶體配置、跨平台兼容等)

留言
張貼留言