• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • InnoDB索引的物理结构

    除空间索引外,InnoDB索引是B树数据结构。空间索引使用 R树,R树是用于索引多维数据的专用数据结构。索引记录存储在其B树或R树数据结构的叶页中。索引页的默认大小为16KB。

    将新记录插入InnoDB聚集索引时,请InnoDB尝试使页面的1/16空闲,以备将来插入和更新索引记录。如果按顺序插入索引记录(升序或降序),则所得的索引页约为15/16装满。如果以随机顺序插入记录,则页面的容量为1/2到15/16。

    InnoDB在创建或重建B树索引时执行批量加载。这种索引创建方法称为排序索引构建。该innodb_fill_factor配置选项定义的空间作为排序指标构建过程中填充,为今后指数增长预留的剩余空间每个B树页的百分比。空间索引不支持排序索引构建。有关更多信息,请参见“排序索引构建”。一个innodb_fill_factor100个叶子在聚簇索引页的空间1/16的设置免费为未来的指数增长。

    如果InnoDB索引页的填充因子下降到之下MERGE_THRESHOLD,默认情况下为50%(如果未指定),则InnoDB尝试收缩索引树以释放页面。该MERGE_THRESHOLD设置适用于B树索引和R树索引。有关更多信息,请参见“为索引页配置合并阈值”。

    您可以通过在初始化MySQL实例之前设置配置选项来定义MySQL实例中所有表空间的页面大小。定义实例的页面大小后,如果不重新初始化实例就无法更改它。支持的大小为64KB,32KB,16KB(默认),8KB和4KB。InnoDBinnodb_page_size

    使用特定InnoDB页面大小的MySQL实例不能使用来自使用不同页面大小的实例的数据文件或日志文件