在MySQL中,B+树是一种用于索引的数据结构,其特点包括所有记录节点都是按照键值大小顺序存放在同一层的叶子节点上,且非叶子节点仅存储键值信息用于指向对应的子节点。对于MySQL中的InnoDB存储引擎,其默认页面大小为16KB。现在,我们来计算三层填满的B+树可以存储多少数据。 1. B+树结构特点 叶子节点:存储实际的记录数据...
根据一些资料得知,在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次数变...
所以,两层的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,数据...
根据上面分析,一个页能存放的索引键值+指针数量约为:16282 ÷ 14 ≈ 1163。 所以,一颗3层B+树,主键设置为int类型(4字节),数据行大小约定为1k,能保存的数据约为:1163 * 1163 * 16k/1k ≈ 2100w。 请帮忙顺手点个赞,祝您越来越美丽。 编辑于 2022-02-20 22:14 内容所属专栏 面试官问系列 整理的一些...
通常情况下,b加树三层结构足以存储接近2000w的数据量了,所以一般三层就足够了,再多的数据量就得考虑一下分库分表了 赞 评论 分享 收藏 澄澈如明 展开 B+树通常被设计为具有多层级结构,而不是仅限于三层。每个节点在B+树中可以包含多个关键字和子节点,这种结构使得B+树能够有效地支持范围查询和范围扫描。