MyISAM的索引树相关
主键索引树
这一部分我们之前在MyISAM的存储结构中也有所提及,我们也知道MyISAM使用B+树作为索引结构,叶节点的data域存放的是数据记录的地址。(因为MyISAM存储引擎的数据和索引是分开存放的,分别是*.MYI
和*.MYD
),其索引树的data存放的是表中记录的地址,下图是MyISAM主键索引的原理图:
辅助索引树
- 在
MyISAM
中,主索引和辅助索引在结构上没有任何区别, data内存放的依然是数据的地址,都是通过寻址找到响应的数据data(这也是与InnoDB的区别) MyISAM
的主索引树要求key是唯一的,而辅助索引的key可以重复。
如果给其它字段创建辅助索引,结构图如下:
解释非聚集索引和非聚集索引
MyISAM的这种索引的结构就是非聚集索引,数据和索引并未存放在一起,很容易理解这种方式也不会涉及什么回表操作。
由此,InnoDB下的索引树结构就可以称为聚集(聚簇)索引。