MySQL 9.0 版本資訊
除了空間索引之外,InnoDB
索引都是 B 樹資料結構。空間索引使用 R 樹,這是用於索引多維資料的專用資料結構。索引記錄儲存在其 B 樹或 R 樹資料結構的葉頁中。索引頁面的預設大小為 16KB。頁面大小由初始化 MySQL 實例時的 innodb_page_size
設定決定。請參閱第 17.8.1 節,「InnoDB 啟動設定」。
當新記錄插入到 InnoDB
叢集索引時,InnoDB
會嘗試將 1/16 的頁面保留空白,以供日後插入和更新索引記錄。如果索引記錄依序(升序或降序)插入,則產生的索引頁面約為 15/16 滿。如果記錄以隨機順序插入,則頁面將從 1/2 到 15/16 滿。
InnoDB
在建立或重建 B 樹索引時執行大量載入。這種索引建立方法稱為排序索引建立。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 節,「設定索引頁面的合併閾值」。