目前常见的主要的三种存储引擎是:哈希、B+树、LSM树。LSM下次再说,hash讲过了。
没有什么B-树,那是 B-tree,国内一直翻译成B-树,其实就是B树。
B树我也不想说了,因为已经被升级过了,叫B+树。
下图来自 小灰的算法之旅,懂得人自然就懂了:

对比一下B树:

这个是B树。
1、所有数据都在叶子节点。算法更容易理解了。回头抽空手写一下B+树,正好跳表也要重写了。
2、底层叶子节点使用链表串起来了。
这第二个改进不可谓不秀。单这么看自然是不明所以的,但是凡事都要放在上下文中去看,B+树的上下文对应的就是磁盘IO的索引呐,那如果我要范围查询呢?比如说我要上面树里面 4-10 的所有数据,B 树怎么作为?B+树怎么作为?高下立判。
先占个位置,这几天是没办法了,有更重要的事情安排上了。忙完这两周,十月说什么也要安排上。