InnoDB引擎之逻辑存储结构

InnoDB的逻辑存储结构如下图所示:

InnoDB引擎之逻辑存储结构_第1张图片

 

1). 表空间

                表空间是InnoDB存储引擎逻辑结构的最高层, 如果用户启用了参数 innodb_file_per_table(在 8.0版本中默认开启) ,则每张表都会有一个表空间(xxx.ibd),一个mysql实例可以对应多个表空间,用于存储记录、索引等数据。

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

你可能感兴趣的:(数据库)