您的位置:首页 > 数据库 > MySQL

MySQL官方文档14.8.2.2节 — InnoDB索引的物理结构译文

2018-03-09 14:26 459 查看
4000

前言

本篇文章为MySQL官方文档14.8.2.2节 — InnoDB索引的物理结构译文,纯平自己粗浅的英语功底和翻译软件进行翻译,如有问题,欢迎指正。

14.8.2.2 InnoDB索引的物理结构

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

将新记录插入InnoDB聚簇索引时,InnoDB会尝试空出页1/16的存储空间以供将来索引记录的插入和更新。如果索引记录以连续顺序(升序或降序)插入,则生成的索引页大约占用15/16。如果记录以随机顺序插入,则页占用1/2到15/16。

InnoDB在创建或重建B-tree索引时执行批量加载。这种索引创建的方法被称为排序索引构建。innodb_fill_factor配置选项定义了在排序索引构建期间填充的每个B树页上的空间百分比,其余空间用于未来索引增长。空间索引不支持排序索引构建。有关更多信息,请参见第14.8.2.3节“分类索引构建”。Innodb_fill_factor设置为100,可以使聚簇索引页的1/16空间免费用于未来的索引增长。

如果InnoDB索引页的填充系数低于MERGE_THRESHOLD(默认情况下为50%,如果未指定),InnoDB会尝试收缩索引树以释放页。MERGE_THRESHOLD设置适用于B树和R树索引。有关更多信息,请参见第14.6.13节“为索引页配置合并阈值”。

您可以通过在初始化MySQL实例之前设置innodb_page_size配置选项来为MySQL实例中的所有InnoDB表空间定义页大小。一旦定义了实例的页大小,如果不重新初始化实例,则无法对其进行更改。支持的大小为64KB,32KB,16KB(默认),8KB和4KB,对应于选项值64k,32k,16k,8k和4k。

在MySQL 5.7中增加了对32KB和64KB页大小的支持。有关更多信息,请参阅innodb_page_size文档。

使用特定InnoDB页大小的MySQL实例不能使用来自使用不同页大小的实例的数据文件或日志文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: