MySQL索引原理——为什么要用B+树
- 本质就是B+树,叶子节点为主键和数据,把非叶子节点的数据都在叶子节点冗余一份,非叶子节点只需要存储与搜索有关的key值和下一页地址,将其他数据都移除。
- 由于非叶子节点不用存真实数据,只有“key和下一页地址”,所以可以放更多这种数据,可以连接更多的子节点,树高度就下来了。
通常一个16kb的页,可以存储三四百个由“key和下一页地址”构成的行,即使两千万的数据量,log以400为底两千万的对数,只需要3层。 - 因为底层的叶子节点是有序的,只需要把叶子节点链接起来,就可以方便读取一个范围内的数据!也可以进行全数据遍历!
B+树叶子节点的链表,是双向链表哈(图中有错误)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY