Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  The Physical Structure of an InnoDB Index

17.6.2.2 InnoDB 索引的物理结构

除了空间索引外,InnoDB 索引都是 B-tree 数据结构。空间索引使用 R-trees,它们是多维数据的专门数据结构。索引记录存储在 B-tree 或 R-tree 数据结构的叶页中。默认情况下,索引页的大小为 16KB。页大小由 innodb_page_size 设置确定,当 MySQL 实例初始化时。见 第 17.8.1 节,“InnoDB 启动配置”

当新的记录被插入到 InnoDB 聚簇索引 中时,InnoDB 尝试留下 1/16 的页面空间以供将来的插入和更新索引记录。如果索引记录以顺序方式(升序或降序)插入,结果索引页将近似 15/16 满。如果记录以随机顺序插入,页将从 1/2 到 15/16 满。

InnoDB 在创建或重建 B-tree 索引时执行批量加载。这 种索引创建方法称为排序索引构建。innodb_fill_factor 变量定义了在排序索引构建期间每个 B-tree 页上的空间百分比,剩余空间保留供将来的索引增长。排序索引构建不支持空间索引。更多信息,请见 第 17.6.2.3 节,“排序索引构建”innodb_fill_factor 设置为 100 将聚簇索引页的 1/16 空间留给将来的索引增长。

如果 InnoDB 索引页的填充因子低于 MERGE_THRESHOLD,默认为 50% 如果未指定,InnoDB 尝试收缩索引树以释放页。 MERGE_THRESHOLD 设置适用于 B-tree 和 R-tree 索引。更多信息,请见 第 17.8.11 节,“配置索引页的合并阈值”