三层B+树可以存储1170 x 1170 x 16 = 21902400条数据。
因此,三层 B+ 树能存储的总数据量为: 数据行总数 = 1170 × 1170 × 16 = 18,974,400 行。 假设更大的行数据 如果每行数据大小减小,比如每行仅占 0.5KB,则一个叶子节点可以存储 32 行数据。 重新计算后,三层 B+ 树最多可以存储: 数据行总数 = 1170 × 1170 × 32 = 37,948,800 行。 如果每...
在MySQL中,B+树是一种用于索引的数据结构,其特点包括所有记录节点都是按照键值大小顺序存放在同一层的叶子节点上,且非叶子节点仅存储键值信息用于指向对应的子节点。对于MySQL中的InnoDB存储引擎,其默认页面大小为16KB。现在,我们来计算三层填满的B+树可以存储多少数据。 1. B+树结构特点 叶子节点:存储实际的记录数据...
这里我们用最坏的情况来假设一行记录大小为1kb,那么,一个16kb的页就可以存储16行数据。 接下来,我们先画一个只要两层高的B+树结构图。 假设第一层根节点存在以下情况:索引1对应页指针地址10,索引5对应页指针地址30,索引8对应页指针地址50。 第二层节点作为叶子节点,存放的是大小为16kb的页数据,页数据里每一行...
一、InnoDB 一棵 B + 树可以存放多少行数据? InnoDB 一棵 B + 树可以存放多少行数据?这个问题的简单回答是:约 2 千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从 InnoDB 索引数据结构、数据组织方式说起。 我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金...
这里我们假设一行记录的数据大小为1k左右 总结一下: 如果B+树高度为2的话,那么这棵B+树的存放总记录数为:根节点指针数*单个叶子节点记录行数 = 16kb/14 * 16 大约 1.8w+ 数据。 如果B+树高度为3的话,那么这棵B+树的存放总记录数为:根节点指针数*单个叶子节点记录行数 = 16kb/14 * 16kb/14 * 16...
B+树索引、Hash索引、全文索引 我们今天要介绍的是工作开发中最常接触到innodb存储引擎中的的B+树索引。要介绍B+树索引,就不得不提二叉查找树,平衡二叉树和B树这三种数据结构。B+树就是从他们仨演化来的。二叉查找树 首先,让我们先看一张图 从图中可以看到,我们为user表(用户信息表)建立了一个二叉查找...
MySQL 的数据是行存储,MySQL 5.6 默认行格式为 COMPACT(紧凑),5.7 及以后的默认行为 DYNAMIC(动态)。 下面是行结构示意图: 再看看对行结构的解读: 02 叶子节点计算 3 层 B+ 树最大数据量 前面说了,我们的 B+ 树是 3 层,第一层就一个根节点,能存放 X 个指针。