获得徽章 0
赞了这篇文章
InnoDB的3层B+树最多可以存多少条数据?
1. mysql等数据库在单表数据较大的时候,一般都会有分库分表的操作,实际上就是为了保证InnoDB在3层之内寻找到数据。
2.前两层一般为索引节点(非叶子节点),最后一层存数据。查表的时候只需要进行3次磁盘IO。
3.MySQL每个节点大小默认为16KB,也就是每个节点最多存16KB的数据,可以修改,最大64KB,最小4KB。
4.以16KB为例,每一个节点(页)保留 1/16 的页面空闲以供将来插入和更新索引记录。如果按顺序(升序或降序)插入索引记录,则生成的页大约可用 15/16 的空间。如果以随机顺序插入记录,则页大约可用 1/2 到 15/16 的空间。默认页"可用"大小16*1024*15/16=15360byte。
5.每个页的组成大致为:Flie Header(38byte), Page Header(56byte), Infimum &supremum(26byte), User Records(用户数据), Free Space(空闲空间), Page Directort(页目录), File Trailer(文件尾)。
6. 故User Records(用户数据)+Free Space(空闲空间)+Page Directort(页目录)=15360-128=15232字节。
7. 页目录槽会放4-8条用户数据的位置(计算取6),一个槽占用1-2个字节(计算取2),当一个槽位超过8条数据的时候会自动分成两个槽。
8. 每条索引记录中包含当前索引值 、一个6字节的指针 、一个5字节行标头指向下一层数据页指针。
8. 假设主键索引,主键大小k字节。则每页大约可以存 15232÷(k+6+5)=x个索引数据。槽占空间约x÷6*2byte=s。修正后为(15232-s)÷(k+6+5)=N。3 层B+树第三层的节点个数就会等于 N^2。
9.最大行长度:对于 4KB、8KB、16KB 和 32KB设置 ,最大行长度略小于数据库页面的一半 。而对于 64KB 页面,最大行则长度略小于 16KB。如果行超过最大行长度, 则将可变长度列用外部页存储,直到该行符合最大行长度限制。
10.总存放记录数:cnt=m*N^2,每个页面放m条。
11.若k=8:最少m=2,约120w条;较多m=500,cnt约3.1亿条
1. mysql等数据库在单表数据较大的时候,一般都会有分库分表的操作,实际上就是为了保证InnoDB在3层之内寻找到数据。
2.前两层一般为索引节点(非叶子节点),最后一层存数据。查表的时候只需要进行3次磁盘IO。
3.MySQL每个节点大小默认为16KB,也就是每个节点最多存16KB的数据,可以修改,最大64KB,最小4KB。
4.以16KB为例,每一个节点(页)保留 1/16 的页面空闲以供将来插入和更新索引记录。如果按顺序(升序或降序)插入索引记录,则生成的页大约可用 15/16 的空间。如果以随机顺序插入记录,则页大约可用 1/2 到 15/16 的空间。默认页"可用"大小16*1024*15/16=15360byte。
5.每个页的组成大致为:Flie Header(38byte), Page Header(56byte), Infimum &supremum(26byte), User Records(用户数据), Free Space(空闲空间), Page Directort(页目录), File Trailer(文件尾)。
6. 故User Records(用户数据)+Free Space(空闲空间)+Page Directort(页目录)=15360-128=15232字节。
7. 页目录槽会放4-8条用户数据的位置(计算取6),一个槽占用1-2个字节(计算取2),当一个槽位超过8条数据的时候会自动分成两个槽。
8. 每条索引记录中包含当前索引值 、一个6字节的指针 、一个5字节行标头指向下一层数据页指针。
8. 假设主键索引,主键大小k字节。则每页大约可以存 15232÷(k+6+5)=x个索引数据。槽占空间约x÷6*2byte=s。修正后为(15232-s)÷(k+6+5)=N。3 层B+树第三层的节点个数就会等于 N^2。
9.最大行长度:对于 4KB、8KB、16KB 和 32KB设置 ,最大行长度略小于数据库页面的一半 。而对于 64KB 页面,最大行则长度略小于 16KB。如果行超过最大行长度, 则将可变长度列用外部页存储,直到该行符合最大行长度限制。
10.总存放记录数:cnt=m*N^2,每个页面放m条。
11.若k=8:最少m=2,约120w条;较多m=500,cnt约3.1亿条
展开
评论
1
赞了这篇文章
赞了这篇沸点
赞了这篇文章
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)