Loading

[MySQL]B+树能存储多少数据

MySQL中一个B+树能存储多少数据

image

MySQL中InnoDB页的大小默认是16k。也可以自己进行设置。(计算机在存储数据的时候,最小存储单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如 XFS/EXT4)最小单元是块,一个块的大小是 4KB。

InnoDB 引擎存储数据的时候,是以页为单位的,每个数据页的大小默认是 16KB,即四个块。

在B+树中,一个结点就是一页。非叶子结点由主键值和一个指向下一层的地址的指针组成的组合组成。叶子结点中由一组键值对和一个指向该层下一页的指针组成,键值对存储的主键值和数据。

由存储结构,可以大概计算出一个B+树能存储的数据数量。
指针在InnoDB中为6字节,设主键的类型是bigint,占8字节。一组就是14字节。
计算出一个非叶子结点可以存储16 * 1024 / 14 = 1170个索引指针。
假设一条数据的大小是1KB,那么一个叶子结点可以存储16条数据。
得出两层B+树可以存储1170 x 16 = 18720 条数据。
三层B+树可以存储1170 x 1170 x 16 = 21902400条数据。

posted @   Duancf  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示