type
status
date
slug
summary
tags
category
icon
password
功能新增或變動
- 在 8.0.29 之前 MySQL 允許時間相關的值使用
-以外的分隔符,但從 8.0.29 開始會棄用並將在未來的版本移除。
- replica_parallel_type 棄用,MTS 只會有
LOGICAL_CLOCK的並行模式,不提供DATABASE模式。
CREATE FUNCTION、CREATE PROCEDUREANDCREATE TRIGGER語句開始支援IF NOT EXISTS。
ALTER TABLE … DROP COLUMN開始支援ALGORITHM=INSTANT。
ALTER TABLE .. ADD COLUMN在 MySQL 8.0.29 之前如果要使用ALGORITHM=INSTANT必須只能加在最後一列,從 MySQL 8.0.29 開始加在任意位置也可以使用ALGORITHM=INSTANT。
- 當使用
ALTER TABLE ... ALGORITHM=INSTANT來對 table 新增或刪除 row 時會創建一個新的 row version ,從 MySQL 8.0.29 開始可以從INFORMATION_SCHEMA.INNODB_TABLES.TOTAL_ROW_VERSIONS來追蹤 row version 的數量,每次 INSTANT 添加或刪除 row 時都會增加,初始值為 0。
因為每個 row version 都需要額外空間紀錄表的 metadata,因此該值的最大允許值目前為 64,當達到此最大值時將無法使用
ALGORITHM=INSTANT 來新增或刪除 COLUMN,並建議使用 COPY 或 INPLACE 算法。此值可以透過執行需要重建表的
ALTER TABLE 或 OPTIMIZE TABLE 語句來重建表,達到將該數值重置為 0 的效果。- 新增
binlog_expire_logs_auto_purge系統變量來控制是否要自動清除 binlog。清除時間由binlog_expire_logs_seconds來控制,當該變量為 0 時,即使binlog_expire_logs_auto_purge= ON 也不會清除 binlog。
優化器變動
materialized(物化) 的 derived table(派生表) 在 union 的情況下可以進行下推優化
BUG 修復
- 當 select count(*) 語句使用了
multi-valued(多值索引時),會導致結果發生異常:
參考: