innodb逻辑存储结构
innodb逻辑存储结构从顶层往下分别是表空间、段、区、页、行。
表空间
表空间存储着所有的数据,是innodb逻辑存储结构的最高层。默认情况下,innodb只有个共享表空间,所有的数据都存储在共享表空间中。如果用户启动了innodb_file_per_table,则每个表内的数据可以单独放到一个表空间内,但要注意的是每张表的表空间内存放的只是数据、索引和插入缓存Bitmap页,而其他类的数据,如回滚(undo)信息,插入缓存索引页、系统事务信息、二次写缓存(Double write buffer)等还是存放在原来的共享表空间内。
段
段是表空间的下一级存储结构,常见的段有数据段,索引段,回滚段。
- 数据段:B+树的叶子节点
- 索引段:B+树的非叶子节点
- 回滚段:即rollback segment,管理undo log segment
区
区是由连续页组成的空间。
页
页是innodb管理的最小单位,默认情况下页的大小为16kb。
行
innodb中的数据是按行的形式存储在页中,一条记录为一行。