B-树、B+树
首先声明:B-树读作B树
MySQL底层使用B+树来存储索引数据
B-树
特点:
1、每个节点都可以存储多个数据;
2、每个节点的子节点树没有数量限制;
3、每个节点都存放这索引值和数据;所以搜索可能在非叶子节点结束,最好的情况为o(1);
4、任何一个关键字只会出现一次;
5、一般一棵B-树的高度在3层左右,因为3层就可以满足百万级别的数据量;
B+树:是B-树的一个变种
与B-树的区别:
1、叶子节点保存了完整的索引和数据,非叶子节点只保存索引值;
2、叶子节点是一个双向链表结构;这大大增加了区间访问性(局部性原理:如果一个存储器的某一个位置被访问,那么其相邻位置被访问的概率也很大;(磁盘预读原理));
3、B+树更适合外部存储;因为其非叶子节点只保存了索引值,单个元素所占空间就变小,但每次IO读取量是固定的,所以每次就可以读取出更多的节点,也就可以达到减少IO读取次数的目的;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类