Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

17.6.2.2 InnoDB 索引的物理结构

除了空间索引外,InnoDB索引都是B-树数据结构。空间索引使用R-树,这是专门为多维数据的索引设计的数据结构。索引记录存储在其B-树或R-树数据结构的叶子页中。默认索引页大小是16KB。页面大小由innodb_page_size设置确定,当MySQL实例初始化时。请参阅第17.8.1节,“InnoDB启动配置”

当将记录插入到InnoDB聚集索引时,InnoDB尝试留下1/16页的空间,以便于将来的插入和更新索引记录。如果索引记录顺序插入(升序或降序),则生成的索引页约为15/16满。如果记录插入随机顺序,则页面从1/2到15/16之间。

InnoDB 在创建或重建 B 树索引时执行 bulk 加载操作,这种索引创建方法称为排序索引构建。变量innodb_fill_factor定义了在排序索引构建中每个 B 树页面填充的百分比,剩余空间保留用于未来的索引增长。排序索引构建不支持空间索引。更多信息,请见第17.6.2.3节,“Sorted Index Builds”。设置innodb_fill_factor为100将留下聚簇索引页面的1/16空间用于未来的索引增长。

如果InnoDB索引页面的填充因子低于默认值50%(或指定的值),即MERGE_THRESHOLDInnoDB将尝试收缩索引树以释放页面。MERGE_THRESHOLD设置适用于 B 树和 R 树索引。更多信息,请见第17.8.11节,“Configuring the Merge Threshold for Index Pages”