MySQL 8.4 版本資訊
除了空間索引外,InnoDB
索引是 B 樹資料結構。空間索引使用 R 樹,這是一種用於索引多維資料的特殊資料結構。索引記錄儲存在其 B 樹或 R 樹資料結構的葉頁中。索引頁面的預設大小為 16KB。頁面大小由初始化 MySQL 實例時的 innodb_page_size
設定決定。請參閱 第 17.8.1 節「InnoDB 啟動配置」。
當新記錄插入到 InnoDB
叢集索引中時,InnoDB
會嘗試保留 1/16 的頁面空間,以供未來插入和更新索引記錄。如果索引記錄以循序方式插入(升序或降序),則產生的索引頁面約為 15/16 滿。如果記錄以隨機順序插入,則頁面會從 1/2 到 15/16 滿。
建立或重建 B 樹索引時,InnoDB
會執行大量載入。這種索引建立方法稱為排序索引建立。innodb_fill_factor
變數定義在排序索引建立期間填滿每個 B 樹頁面的空間百分比,剩餘空間則保留給未來索引成長。空間索引不支援排序索引建立。如需詳細資訊,請參閱 第 17.6.2.3 節「排序索引建立」。innodb_fill_factor
設定為 100 時,會在叢集索引頁面中保留 1/16 的空間,以供未來索引成長。
如果 InnoDB
索引頁面的填滿因子降至低於 MERGE_THRESHOLD
(如果未指定,預設為 50%),InnoDB
會嘗試縮減索引樹以釋放頁面。MERGE_THRESHOLD
設定適用於 B 樹和 R 樹索引。如需詳細資訊,請參閱 第 17.8.11 節「配置索引頁面的合併閾值」。