btree索引:
	聚簇索引
	非聚簇索引

	聚簇索引: innodb
		索引树和数据在一起存储,查询时先查询索引,找到后可以直接去到数据,索引会存储数据的行ID

	非聚簇索引: myisam
		索引树和数据不在一起,查询时先查索引,找到位置后,再根据位置去获取数据

B+Tree结构都可以用在MyISAM和InnoDB上。mysql中,不同的存储引擎对索引的实现方式不同

聚簇索引要比非聚簇索引查询效率高很多

简单的理解:叶子节点上存储了整体的数据,就是聚簇索引(innodb),否则就是非聚簇索引(myisam)

聚簇索引的数据的物理存放顺序与索引顺序是一致的,即:只要索引是相邻的,那么对应的数据一定也是相邻地存放在磁盘上的。 聚簇索引要比非聚簇索引查询效率高很多。
聚集索引这种主+辅索引的好处是,当发生数据行移动或者页分裂时,辅助索引树不需要更新,因为辅助索引树存储的是主索引的主键关键字,而不是数据具体的物理地址。

因为聚簇索引是按该列的排序存储的,因此一个表只能有一个聚簇索引。

非聚簇索引
非聚集索引,类似于图书的附录,但是,一个表可以有不止一个非聚簇索引。

MyISAM的是非聚簇索引

B+Tree的叶子节点上的data,并不是数据本身,而是数据存放的地址。

InnoDB使用的是聚簇索引

将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = 14"这样的条件查找主键,则按照B+树的检索算法即可查找到对应的叶节点,之后获得行数据。若对Name列进行条件搜索,则需要两个步骤:第一步在辅助索引B+树中检索Name,到达其叶子节点获取对应的主键。第二步使用主键在主索引B+树种再执行一次B+树检索操作,最终到达叶子节点即可获取整行数据。