在MySQL中,B+树是一种用于索引的数据结构,其特点包括所有记录节点都是按照键值大小顺序存放在同一层的叶子节点上,且非叶子节点仅存储键值信息用于指向对应的子节点。对于MySQL中的InnoDB存储引擎,其默认页面大小为16KB。现在,我们来计算三层填满的B+树可以存储多少数据。 1. B+树结构特点 叶子节点:存储实际的记录数据...
因此,三层 B+ 树能存储的总数据量为: 数据行总数 = 1170 × 1170 × 16 = 18,974,400 行。 假设更大的行数据 如果每行数据大小减小,比如每行仅占 0.5KB,则一个叶子节点可以存储 32 行数据。 重新计算后,三层 B+ 树最多可以存储: 数据行总数 = 1170 × 1170 × 32 = 37,948,800 行。 如果每...
根据一些资料得知,在MySql数据库当中,指针地址大小为6字节,若索引是bigint类型,那么就为8字节,两者加起来总共是14字节。 接下来,通过以下计算步骤,就可以统计出两层的B+数大概可以存储多少条记录数据—— 一、先计算一个节点的字节大小:16kb * 1024 = 16384 字节。 二、16384 字节 / 14 字节 = 1170 ,意味着...
3层B+树的话,可以存放1170*1170*16=21902400行数据,也就差不多2000w条数据了。 附加题 为啥不用B树? 因为B树的节点(无论是叶子节点还是非叶子节点),都会保存数据,所以相当于B+树的话,B树的非叶子节点能保存的指针就变少了,保存同等数据量的情况下,B树指针变少了就只能增加树的高度了,就会导致磁盘IO次数变...
图MySQL B+树示意图 InnoDB页的大小默认是16KB: 假设一条记录大小为1KB,则一个数据页中可以存16条数据(忽略页中的其他数据结构) 假设主键为int,又指针大小为6B,则一个索引页中可以存储16KB/(4B+6B)≈1638个索引 所以,两层的B+树可以存储:16*1638=26208条数据;三层的B+树可以存储:16*1638*1638=42928704条...
一组就是14字节。 计算出一个非叶子结点可以存储16 * 1024 / 14 = 1170个索引指针。 假设一条数据的大小是1KB,那么一个叶子结点可以存储16条数据。 得出两层B+树可以存储1170 x 16 = 18720 条数据。 三层B+树可以存储1170 x 1170 x 16 = 21902400条数据。
一个三层的B+树最多可以放多少数据 #java #Java面试 #MySQL #Java程序员 #面试 - Java小叮当于20240721发布在抖音,已经收获了19.2万个喜欢,来抖音,记录美好生活!
Mysql innoDB B+ 树 3-4层 最大存储数据: 假定一行数据 1K,数据库一页大小 16K,页指针 6byte,主键索引 4byte。 一页大小大致最大存储索引: 16*1024/(6+4) 约 1600 ; 底层叶子节点最大存储行数据: 16K/1k = 16 ; 三层数据结构最大存储数据: ...
要介绍B+树索引,就不得不提二叉查找树,平衡二叉树和B树这三种数据结构。B+树就是从他们仨演化来的。二叉查找树 首先,让我们先看一张图 从图中可以看到,我们为user表(用户信息表)建立了一个二叉查找树的索引。图中的圆为二叉查找树的节点,节点中存储了键(key)和数据(data)。键对应user表中的id,数据...