文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9 MB
PDF (A4) - 40.0 MB
手册页 (TGZ) - 258.5 KB
手册页 (Zip) - 365.5 KB
信息 (Gzip) - 4.0 MB
信息 (Zip) - 4.0 MB


MySQL 8.4 参考手册  /  ...  /  InnoDB 索引的物理结构

17.6.2.2 InnoDB 索引的物理结构

除了空间索引外,InnoDB 索引是 B 树 数据结构。空间索引使用 R 树,这是用于索引多维数据的专用数据结构。索引记录存储在其 B 树或 R 树数据结构的叶页中。索引页的默认大小为 16 KB。页面大小由 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 节,“配置索引页的合并阈值”