MySQL-Innodb存储结构
1. InnoDB逻辑存储结构
上图截取互联网
InnoDB存储引擎中的数据按照表空间进行管理。在初始化时创建一个共享表空间(ibdata1),他存放innodb的所有数据(系统表,回滚(undo)信息【5.7可以单独配置undo表空间】,插入缓冲索引页、系统事务信息,二次写缓冲)。若开启了innodb_file_per_table参数时,每张表创建独立的表空间存储(B+树的数据、索引和插入缓冲Bitmap页),其它信息仍然存储在默认的表空间中。
2. 表空间(tablespace)
表空间由段(segment)、区(extent)、页(page)组成。
3. 段(segment)
段是表空间的主要组织结构,用来管理物理文件。创建一个索引(B+树)时,默认同时创建两个段,分别是内节点段(存储主键)和叶子节点段(存储数据)
4. 区(extent)
区是由物理上连续分配的一段空间(每个区的大小都为1MB),默认innodb页(16K)的情况下,一个区由64个连续页组成。【16K * 64 = 1M】
5. 页(page)
页是文件管理的最小单位,默认每个页的大小为16KB。innodb_page_size参数可以配置页面大小(2KB,4KB, 8KB,16KB等)
常见的页类型:
1)数据页(B-tree Node)
2)undo页(undo Log Page)
3)系统页(System Page)
4)事务数据页(Transaction system Page)
5)插入缓冲位图页(Insert Buffer Bitmap)
6)插入缓冲空闲列表页(Insert Buffer Free List)
7)未压缩的二进制大对象页(Uncompressed BLOB Page)
8)压缩的二进制大对象页(compressed BLOB Page)
6. 行(row)
关系型数据库中数据是按行进行存放的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)