文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  InnoDB 索引的物理結構

17.6.2.2 InnoDB 索引的物理結構

除了空間索引外,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 節「配置索引頁面的合併閾值」