【说站】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页的概念分析,希望对大家有所帮助。更多mysql学习指路:MySQL
推荐操作系统:windows7系统、mysql5.8、DELL G3电脑
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。