如上图:

innodb 的 逻辑存储单元分成 表空间,段,区,页 4个等级

默认情况下,一个数据库 所有变共享一个 默认的表空间(tablespan)。可以指定每个表一个表空间。

一个表空间管理着 多个 segment( 段 ),不固定个数

一个段管理着多个区( extent ),并且一个区是一个 1M 。

一个 区 有 64 页 (page),一个页是 16K。

页是mysql 逻辑存储单元的最小单元,一个 页可以保存多行的数据。

page 结构:File Header(38字节),Page Header(56字节),Infimun和Supremum Records,User Records,Free Space,Page Directory,File Trailer(8字节)

File header:文件头里面包含了该页所在表空间信息,该页在表空间内的偏移量,该页的checksum值,该页的LSN值,该页的类型,该页的上一页指针,该页的下一页指针,页号

page header(位置信息、统计信息,状态信息):在页目录中的槽数、第一个记录的指针、指向可重用空间的首指针、当前页在索引树中的位置、索引ID、记录数、已删除记录的字节数、该页中记录的数量(包括最大最小记录)、最后插入记录的位置、最后插入记录的方向、一个方向连续插入记录的数量、修改当前页的最大事务、PAGE_BTR_SEG_LEAF、PAGE_BTR_SEG_TOP

infimum和supremum record:每个数据页中都有两个虚拟的行,用来限定记录的边界

user record:实际存储行记录内容

free space:空闲空间,同样是个链表结构。在一条记录被删除后,该空间会被加入到空闲链表中

page directory:存放了记录的相对位置,这些记录的指针称为槽

File Trailer:前面四个字节代表该页的checksum值,最后四个字节与FIle header中的FIL_PAGE_LSN相同,通过比较这两个值来保证页的完整性

最新文章

  1. python3 三级菜单
  2. lua跨平台文件夹遍历匹配查找
  3. [问题2014A06] 解答
  4. 汇编查看StackFrame栈帧
  5. The Rotation Game (POJ 2286) 题解
  6. java获取当前操作系统的信息
  7. C++ 构造过程和析构过程
  8. 浅谈HTTP响应拆分攻击
  9. 在MAC系统里添加开机启动任务(但是怎么才能知道自己程序的固定位置呢?)
  10. 利用python 提取log 文件里的关键句子,并进行统计分析
  11. HTML5学习+javascript学习:打飞机游戏Service层Control层+源码
  12. 浙江省新高中信息技术教材,将围绕Python进行并增加编程相关知识点
  13. StringUtils工具类常用方法
  14. 如何搞定SVN目录的cleanup问题和lock问题
  15. 如何使用Visual Studio Code开发Django项目
  16. Spring Security默认的用户登录表单 页面源代码
  17. JS调用模式
  18. 已知宽高和未知宽高的div块的水平垂直居中
  19. UCS2-little endian转码(utf16)
  20. Java基础加强之并发(四)synchronized关键字

热门文章

  1. python实现全局配置和用户配置文件
  2. vue双向绑定的原理
  3. 尚学linux课程---3、linux网络说明
  4. SQLServer 中存储过程
  5. JavaWeb三大组件—过滤器filter
  6. JAVA判断一个对象生存还是死亡
  7. 关于priority_queue和sort()对结构体数组的排序
  8. 怎么取消主键自增长的问题(SQL Server)
  9. [转]Git 常用命令详解
  10. 2016.11.5初中部上午NOIP普及组比赛总结