版权声明:欢迎转载,请注明出处,谢谢。
上图红框中表明,InnoDB表数据的存储是按照主键的值来组织的;
按照上面的说法,InnoDB表的聚簇索引在同一个结构中保存了B-Tree索引和数据行,了解这个知识点后,我的疑问是:既然索引中有整行记录,那么表数据文件还有什么用呢?
《高性能MySql》的5.3.5章节对于聚簇索引的描述:
看来我的疑问可以解释了:索引数据和表数据分开存储这种理解在InnoDB是错误的,实际上InnoDB的表数据保存在主键索引的B-Tree的叶子节点;
再来看看大神文章中的解释;
从上图可见,并不存在表数据这样的内容,只有节点页(Node pages)和叶子页(Leaf pages)