8.0 預設值
all
8.4 預設值
none
Dynamic
Yes
需特別關注
需特別關注

簡介

控制 Innodb 是否使用 change buffer。

說明

change buffer 是 buffer pool 的一部分,當收到對不在 buffer pool 的 secondary index 進行 DML 修改時會暫時存到 change buffer,並在稍候才 merge 到 buffer pool :
notion image
這麼做可以延遲對 secondary index page 的寫入操作,並在稍候可以合併為順序寫入,避免大量的隨機 I/O。
參數可以設置的值為如下:
Value
含義
none
不緩存任何操作
inserts
緩存 Insert 操作
deletes
緩存 Delete 標記 操作
changes
緩存 Insert 和 Delete 標記 操作
purges
緩存背景執行的物理刪除操作。
all
緩存 Insert 和 Delete 標記 及 purges 操作。

建議

官方建議:如果 secondary index 數量較少,或者使用 SSD 其中順序和隨機讀取 I/O 差不多的情況下,可以考慮禁用 change buffer。

參考