这篇文章主要为大家展示了“mysql页的概念是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql页的概念是什么”这篇文章吧。
说明
1、页是 InnoDB 中管理数据的最小单元。Buffer Pool 中存的就是一页一页的数据。
2、往MySQL插入的数据最终都是存在页中的。在 InnoDB 中的设计中,页与页之间是通过一个双向链表连接起来。
数据页构成
File Header
描述页的校验和,页号,上/下页的指针,页的类型,页属于哪个表空间等信息
Page Header
记录了有多少个slot,空闲空间的偏移量,已经存储了多少条数据等信息
Infimum+Supremum
这两个并非是用户插入的数据,是虚拟列,Infimum代表着当前页中最小的数据行,Supremum代表当前页中最大的数据行(按照主键排序的大小),User records记录都位于它们之间,并且通过每条记录的行格式中的一些属性(next_record)形成按照主键排列顺序的数据链表,再加上最小的虚拟行Infimum与最大的Supremum就组成了当前页的数据链表。
User records
用户插入的数据行
Free sparce
当前未存放用户数据的空间
Page Directory
如果一行数据长度比较小,比如表只有一个int类型的id字段,那么一个页中会存放非常多的行记录。如果查询数据就需要遍历页中所有的记录取出满足select条件的数据,这样的话遍历速度会比较慢。Page Directory存放了很多slot,slot存放着每个组中最大的数据行的偏移量,数据链表是按照主键排列有序的,所以Page Directory可以使用二分查找法快速定位要插入与快速查找的数据在页中的位置.组的生成逻辑三言两语说不清楚,可以直接理解成,对于当前页中的数据行进行横向划分,大部分组中数据有4-8行。
File Trailer
存储了校验和LSN,与File Header的校验一起校验数据的准确性。
以上是“mysql页的概念是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。