MySQL磁盘结构

MySQL磁盘结构

物理存储

  • 一个表空间的物理存储有很多个组组成,每个组有256M大小,每个组由256个区构成,每个区大小为1M,每个区有64个页,每页有16K
  • 组与组之间以不断增长的数组的形式构成,这样可以保证段空间是可以不断扩展(autoextend)的
  • 物理存储的基本单位是区和页
  • 表空间的首组的第一个页(FSP)记录着全表信息和全组的区描述符,第二个页记录InsertBuffer信息,第三个页记录着Inode信息; 表空间的其余各组的第一个页(XDES)记录全组的区描述符,第二个页记录InsertBuffer信息
  • 每个区都由一个区描述符进行描述,存放在FSP或XDES类型的页面中,一个FSP或XDES类型的页面可以包含256个区描述符
  • 每个段也都由一个段描述符进行描述,存放在INODE类型的页面中,一个INODE类型的页面可以包含最多85个段描述符,多个INODE类型的页面可以链接在一起,从而存储无限个段描述符

逻辑存储

  • 每一个表由表空间属性和完全空闲碎片区链表、部分空闲碎片区链表、非空闲碎片区链表和多个段组成
  • 多个段的段描述符以分组链表的形式存储,每个段由32个零散页和完全空闲区链表、部分空闲区链表、非空闲区链表组成
  • 一个索引由两个段组成,所有的非叶子节点组成一个段,叶子节点组成另一个段

逻辑-物理映射

  • 表:表的元属性保存在第一个组的第一个页中,通过直接读取获得
  • 表中的碎片区:所有表中的碎片区以链表的形式链接起来
  • 表中的索引:一个表由多个索引组成,每个索引两个段,这些段被放在多个INODE页面中,多个INODE页面被链接起来
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 表空间:ibdata公用表空间文件,也可以通过配置innodb_file_per_table设置独立表空间文件 i...
    转过阅读 434评论 0 0
  • 不同类型的页简介 前边我们简单提了一下页的概念,它是InnoDB管理存储空间的基本单位,一个页的大小一般是16KB...
    tracy_668阅读 1,178评论 1 6
  • 本文分享InnoDB如何规划表空间,如何存储表空间元信息以及用户数据。 思考一个问题,如果给你一个文件,让你存储M...
    binecy阅读 862评论 0 0
  • 1. 硬链接和软连接区别 硬连接-------指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区...
    杰伦哎呦哎呦阅读 2,330评论 0 2
  • mmap基础概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址...
    dequal阅读 1,248评论 0 1