技术主题
聚簇索引是一种数据的存储方式,它的数据行只存放在索引(B+树)的叶子上,内部节点不存放数据。
聚簇索引
聚簇索引默认是主键,如果没有定义主键,innodb会选择一个唯一的非空索引代替。如果没有这种索引,innodb会隐式定义一个主键作为聚簇索引。
非聚簇索引
非聚簇索引就是指B+树的叶子节点上的data,并不是数据本身,而是数据存放的地址,主索引和辅助索引没啥区别,只是主索引中的key一定得是唯一的。主要是用在MyISAM存储引擎中。
聚簇索引和非聚簇索引的对比
对比发现
InnoDB使用的是聚簇索引,将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = 14" 这样的条件查找主键,则按照B+树的检索算法即可查找到对应的叶节点,之后获得行数据。
回表的概念:若对Name列进行条件搜索,则需要两个步骤:第一步在辅助索引B+树中检索Na