B树和B+树

1.B+树相对B树,为什么IO次数更少?

为什么 B+ 树比 B 树更适合应用于数据库索引? B+树更加适应磁盘的特性,相比B树减少了I/O读写的次数。 由于索引文件很大因此索引文件存储在磁盘上,B+树的非叶子结点只存关键字不存数据,因而单个页可以存储更多的关键字,即一次性读入内存的需要查找的关键字也就越多,磁盘的随机I/O读取次数相对就减少了。

2.为什么B+树3层就可以存储4千万数据了?

参考:https://zhuanlan.zhihu.com/p/86137284

主键是int类型,4字节

同样的,若主键ID是int类型,长度为4字节,那么可以计算出1页中有指针数量=16K*1024/(6+4)=1600个

其实这也很好算,我们假设主键 ID 为 bigint 类型,长度为 8 字节,而指针大小在 InnoDB 源码中设置为 6 字节,这样一共 14 字节,我们一个页中能存放多少这样的单元,其实就代表有多少指针,即 16384/14=1170。

1G的内存,可以存储104857600个节点(条数据的索引)

相关推荐
啦啦啦啦啦zzzz11 小时前
数据结构:二叉树的线索化
数据结构·算法
如竟没有火炬12 小时前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
XZ-07000114 小时前
MySQL—B+树构建
数据库·b树·mysql
he___H14 小时前
B、B+树和vue部分知识
数据结构·vue.js·b树
hai31524754316 小时前
结构化编程:AI工业化编程的探索
数据结构·自然语言处理·硬件工程·动态规划·集成学习
2401_8685347816 小时前
2026年5月系统分析
数据结构·python·tornado
袋鼠云数栈17 小时前
数栈 V7.0 多模态数据智能平台:打造 AI-Ready 的企业数据底座
大数据·数据结构·数据库·人工智能·数据治理·多模态
迈巴赫车主17 小时前
优先队列(PriorityQueue)
数据结构·算法
Boom_Shu18 小时前
构造函数程序
数据结构·算法
Lucky_ldy18 小时前
数据结构从入门到精通:链表
数据结构·链表