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 PROCEDURE
ANDCREATE 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
(多值索引時),會導致結果發生異常:
參考: