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 节,“配置索引页的合并阈值”.