B-tree:
B树其实是一种多叉树,它的出现降低了树的高度;
文件系统及数据库系统的设计者利用了磁盘预读原理,将一个节点的大小设为等于一个页(页得大小通常为 4k), 这样每个节点只需要一次 I/O 就可以完全载入;
B树搜索可能在叶子结点,也可能在其他节点;
B+tree:
B+树的搜索必须达到叶子结点,数据全部存储于叶子节点的链表里;其他节点相当于索引,更适合文件索引系统,数据库索引的常用数据结构;
InnoDB:
根据每张表的主键创建的B+tree,叶子节点存储数据,称为聚簇索引,只能有一个;
若表不存在主键,会自动的创建一个符合的主键;
辅助索引:根据辅助索引创建新树,不过它的叶子节点存储主键,找到主键通过聚簇索引进行二次查询;
MyISAM:
根据主键或辅键创建B+tree,叶子节点存储的是数据的地址,所以它的主索引和辅助索引没什么区别,只是主索引要求key是唯一,而辅助索引的key可以重复;
B*tree:
B*树是 B+树的变体,在 B+树的非根和非叶子结点再增加指向兄弟的指针;
分裂:
当B-tree,B+tree,B*tree,删除添加时候,结构变了会通过分裂的方式变的符合