MyISAM索引实现 :MyISAM索引文件和数据文件是分离的,索引文件进保存数据的地址,非聚集索引
主键索引
MyISAM引擎使用B+Tree作为索引结构,叶子结点的data域存放的是数据记录的地址。下图为MyISAM主键索引原理图:
辅助索引
在MyISAM中,主索引和辅助索引在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复,如下图:
InnoDB索引实现:聚集索引,数据本身就作为索引的数据结构
主键索引
InnoDB表数据本身就按照B+Tree组织的一个数据结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引。需要保证必须要有主键。
辅助索引
InnoDB的辅助索引都引用主键的索引作为data域。