InnoDB原理

crud的时候,都会从磁盘上加载数据页到Buffer Pool的缓存页里去,更新缓存页后,由异步线程刷回磁盘的数据页。

 

 

所以MySQL进行数据操作的最小单位是数据页,接下来就分析分析,数据页到底长什么样。

每个数据页默认16kb的大小,数据页由多个部分组成

文件头:存放了特别多的信息,如当前页号、页类型、所属表空间、上一页号、下一页号等等。

数据页目录:数据页目录存储的内容就是主键ID和行位置。

 

 空闲空间:

其实数据页还未写入数据时,是没有数据行的,只有空闲空间,一旦写入,空闲空间会减少一些,直到空闲空间耗尽

 

 双向链表:

所以数据页是通过上下页号,组成双向链表

 

 数据页内部会存储一行一行的数据,每一行数据都会按照主键大小进行排序存储,同时每一行数据都有指针指向下一行数据,组成单向链表。

 

 数据页目录

 

 索引页:

索引页,顾名思义,就是存储索引信息的数据页,在数据页的文件头部,有页类型来进行区分。

索引页会存储两类内容,一类是最小主键值与索引页号,另一类是最小主键值与数据页号。

 

 

posted @   KLAPT  阅读(56)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示