1. B-树
在介绍索引实现之前,我们先来了解下几种树的数据结构。
二叉搜索树
二叉搜索树有以下性质
1.每个节点有一个关键字
2.左右孩子至多有一个。
3.关键字大于左孩子,小于右孩子。
正因为二叉搜索树的特性,所以这种数据结构很适合用来做搜索,效率等同于二分查找,时间复杂度为log2(n),
但是这种最原始的二叉树有一个弊端,在极端的情况下会退化成链表
所以基础二叉搜索树有很多变种,例如红黑树和AVL树,基于特定的策略避免了树退化成链表,红黑树做数据量不大的搜索还是应用很广泛的,但是要基于文件索引系统。却不合适,因为红黑树虽然搜索效率高,但是树的高度比B-树和B+树要高,需要进行的磁盘IO就多,相比之下后者优势就比较明显了。