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结构
总体架构

内存架构


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


磁盘结构



后台线程

posted @
2025-01-31 02:51
Luna-Evelyn
阅读(
7)
评论()
编辑
收藏
举报
点击右上角即可分享