数据结构演示网站:Data Structure Visualization
先来了解两个数据结构B树与B+树
B树:
N阶B树每个节点最多存储N-1个Key,N个指针
例如:一个5阶B树,当前节点存储到5个Key时,中间的数会向上分离,形成新节点
结果如下:B树是多路平衡搜索树,进行了自平衡
B+树:
数据仅存储在叶子节点,内部节点仅保存键和子节点指针。所有查询必须走到叶子节点才能获取数据。
叶子节点通过双向链表串联。
B树与B+树区别:
1.数据存储:
B树:每个节点都有Key和数据
B+树:只有叶子结点有数据
2.结构:
B树:节点独立,查找时需要回溯
B+树:基于双向链表
3.查询:
B树:可能提前查找结束,时间不稳定
B+树:每次都走到叶子结点,时间稳定
索引分类:
按数据结构分类:
①B+树索引:基于平衡多路搜索树,用于查询和排序
②哈希索引:基于哈希表,用于精准查询
③全文索引:基于倒排索引,用于全文检索
④R树索引:使用空间数据,用于地理位置信息
按存储方式分类:
①聚簇索引:数据存储在叶子结点,索引即数据,减少回表,效率高,只能有一个
②非聚簇索引(二级索引):数据地址存储在叶子结点,当需要完整数据时需要回表,增加I/O操作,可以创建多个