MySQLInnoDB数据页的结构

我国知名研究白癜风的专家 https://m.39.net/disease/a_5951583.html
之前说过页是MySQL管理存储空间的基本单位,一个页一般是16KB。MySQL一次会将整个页加载到内存中(原因:内存速度远大于磁盘速度)。现在来看一下InnoDB中存放表中记录和索引的页的结构。了解了索引页的结构可以帮助我们了解后面使用索引查找为什么那么快。先看数据页的结构,整体如下图:比较简单的一些字段快速过一下:FileHeader和PageHeader是一些通用信息,其中用于存放记录的数据页的FileHeader中有FIL_PAGE_PREV和FIL_PAGE_NEXT,用于将多个页连成双向链表,如下图:FileTrailer用于校验页是否完整(为保证从内存中同步到磁盘的页的完整性,在页的首部和尾部都会存储页中数据的校验和和页面最后修改时对应的LSN值,如果首部和尾部的校验和和LSN值校验不成功的话,就说明同步过程出现了问题),Infimum+Supremum是两个虚拟的行记录,代表最小和最大记录。每当插入一条记录时,都会从FreeSpace部分申请空间划到UserRecords部分,直到FreeSpace空间用尽,意味着这个页已经用完了。现在我们想要看到插入一堆记录之后,这些记录在页中是怎样组织起来的。首先回顾一下上一节说过的一条记录的格式,其中有个记录头信息,这个很关键,记录头信息里有几个值得我们现在


转载请注明:http://www.aierlanlan.com/rzfs/8393.html

  • 上一篇文章:
  •   
  • 下一篇文章: