VPS测评 VPS推荐 VPS优惠
Linux运维

InnoDB中一颗B+树可以存放多少行数据

B+Tree索引

B+Tree索引

按顺序存储,每一个叶子节点到根结点的距离是相同的;左前缀索引,适合查询范围类的数据。


在InnoDB存储引擎中,一颗的B+树可以存放多少行数据?

我们可以大概的估算一下

假设一颗B+树的高度为2层,即有一个根节点和若干个叶子节点。

那么这颗树理论上可以存放的,总行记录数=根节点指针数 * 单个叶子节点记录的行数。


我们先计算叶子节点:

B+树中单个叶子节点大小为16K,假设每一条记录是1K,一个叶子节点能存放的记录数就是16K/1K=16。

然后再计算非叶子节点:

非叶子节点可以存放多少个指针呢?

假设主键ID是索引,它的数据类型为bigint,长度是8B。

InnoDB中一个指针的大小是6B。

8B+6B=14B,也就是14个字节。

所以可以计算出,指针数=16KB/14B=16 * 1024 / 14 = 1170.28571,大约是1170个指针。


因此,我们可以得出,一颗两层高的 B+Tree 大约可以存放 1170 * 16 =18720 条记录。

以此类推,一颗三层高的 B+Tree 大约可以存放 1170 * 1170 * 16 = 21902400 条记录。

所以在InnoDB中 B+树 高度一般为2-3层,可以满足千万级的数据存储。

未经允许不得转载:青蛙主机 » InnoDB中一颗B+树可以存放多少行数据

VPS相关常用工具

PING测试工具自用毛子接码站