相关链接

5叉树数据结构示例:https://kdocs.cn/l/suxIgTCLm4OX

平衡2叉树演示:https://www.cnblogs.com/zhangbaochong/p/5164994.html

BTree 和 B+Tree 示例图

索引

索引

BTree 和 B+Tree 的区别

1、b+tree 的叶子节点只保存键值的信息
2、b+tree 所有的叶子节点都有一个链指针(形成链表,有利于做范围查找,排序,不用再从根节点查找一次了)
3、b+tree 所有的数据都保存在叶子节点中
4、B+树有个缺点,就是不论查什么数据都必须要遍历到叶子节点才可以拿到真实的数据地址

B+Tree 的优势

1、每个数据块的存储空间是有限的(默认16KB),如果数据了过大的话,将会导致key的容纳数量变小

2、key的容量变小,意味着要继续进行二叉树分裂,那么tree的深度就会变深,增大磁盘 I/O 次数

3、innodb数据分布在叶子节点,并且指针连接形成链表,排序和范围查找效率更高

mysiam 和 innodb 索引机制区别

1、myisam的索引取和数据区是分成两个文件存储的,innodb是吧索引和数据放在一起的
2、myisam的索引是一个单独的书,每个节点都有数据的存储地址;innodb只有主键索引有数据的存储地址,其他索引存储的是主键索引的关键字
3、myisam如果数据块上有值,可以直接拿到数据。innodb必须要到叶子节点拿值