InnoDB 逻辑存储结构

2021-01-25  本文已影响0人  十毛tenmao

InnoDB的数据大部分都是保存在表空间中,包括索引,数据和插入缓存

逻辑结构

InnoDB存储引擎的逻辑存储结构和 Oracle大致相同 ,所有数据都被逻辑地存放在一个空间中 ,我们称之为表空间 ( tablespace ) 。表空间又由段 ( segment ) 、区 ( extent ) 、页 ( page ) 组成 。 InnoDB存储引擎的逻辑存储结构大致如图4-1所示。


InnoDB逻辑存储结构

对于启用了innodb_file_per_table的参数选项,需要注意的是 ,每张表的表空间内存放的只是数据、索引和插入缓冲 ,其他类的数据,如撤销( undo log) 信息、系统事务信息、 二次写缓冲 (double write buffer ) 等还是存放在原来的共享表空间内。

数据行与表空间页的关系

对于<=32K的页,其最大的行大小略小于页大小的一半,比如16K的页对应的行大小为略小于8K。对于大于32K的页,则略小于16K。
如果行内容小于最大行大小,则全部保存在页内,如果超过,InnoDB则会把可变大小的列保存到页外存储(external off-page storage)。(其实也在页里,只不过不在之前的两个页内,而是在一个溢出页,而且每个列都有自己的溢出页)

参考

上一篇下一篇

猜你喜欢

热点阅读