[2025.1.30 MySQL学习] InnoDB引擎逻辑结构 && 内存结构

InnoDB引擎

InnoDB逻辑存储结构

  • 表空间:一个mysql实例可以对应多个表空间(ibd文件),用于存储记录、索引等数据
  • 段:分数据段、索引段、回滚段,InnoDB是索引组织表,数据段就是B+tree的叶子节点,索引段就是B+tree的非叶子节点,段用于管理多个区
  • 区:表空间单元结构,每个区大小为1M。默认情况下,InnoDB存储引擎页大小为16K,即一个区中有64个连续的页
  • 页:是InnoDB存储引擎磁盘管理的最小单元,每个页默认大小为16K,为了保证页的连续性,InnoDB每次从磁盘中申请4-5个区
  • 行:InnoDB存储数据是按行进行存放的
    • Trx_id:每次对某条记录进行改动时,会把对应的事务id赋值给Trx_id隐藏列
    • Roll_pointer:每次对某条引记录进行改动时,都会把旧的版本写到undo日志中,这个隐藏列相当于一个指针,可以通过它来找到该记录修改前的信息





InnoDB结构

总体架构

image

内存架构

image

image

  • Change Buffer意义:二级索引与聚集索引不同,通常是非唯一的,并且以相对随机的顺序插入,删除和更新可能会影响索引树中不相邻的二级索引页,如果每一次都操作磁盘,会造成大量的磁盘IO,有了change buffer,可以现在其中进行合并处理,而后同步至buffer pool,减少IO

image

image

磁盘结构

image

image

image

后台线程

image

posted @   Luna-Evelyn  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示