获得徽章 0
今日总结:
进度➕1
沸点➕1
打卡天数➕1
dal done
rpc ing
handler ing
go to sleep...
展开
评论
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亿条
展开
评论
Day 7: 今天看了一下,我要抓紧时间打卡了,不然要不能满21天啦。。救命!
评论
红黑树是二叉查找树实现,能够以较小的开销保持二叉查找树的平衡。具备平衡性质的二叉查找树能够极大地提高节点的查询速度。
从一个十亿节点的红黑树中查找一个节点,所需要的查询次数不到30,不禁让人感叹。
评论
Day5:很神奇的defer,带来方便的同时也一定要注意它的奇特之处。在用来并发的同步,资源释放上还是挺方便的。
评论
这个世界上肯定有另一个我,做着我不敢做的事,过着我想过的生活。
——山本文绪《蓝另一种蓝》
评论
今天练习了docker的应用部署,虽然意外重重,但是最终都解决了,docker真是一个好工具!
评论
赞了这篇沸点
今天阅读了《Go Web开发入门指南<前半>》这篇文章,以前看过一次,今天就当复习了
评论
#毕业考研还是工作?# 不论是考研还是工作,都不能忽视先提升自身技能[呲牙]
评论
今日完成了汇报,看了眼视频课。终于放晴了这个天气,真是个学习的好天气!(Timi)[呲牙]
评论