zoukankan      html  css  js  c++  java
  • InnoDB逻辑存储结构

    Reference: https://time.geekbang.org/column/article/121710 

    InnoDB逻辑存储结构

    InnoDB逻辑存储结构分为表空间(Tablespace)、段(Segment)、区(Extent)、页Page)以及行(row)

    1. 表空间(Tablespace)

    InnoDB提供了两种表空间存储数据的方式,一种是共享表空间,一种是独占表空间。 InnoDB 默认会将其所有的表数据存储在一个共享表空间中,即ibdata1。

    我们可以通过设置innodb_file_per_table参数为1(1代表独占方式)开启独占表空间模式。开启之后,每个表都有自己独立的表空间物理文件,所有的数据以及索引都会存储在该文件中,这样方便备份以及恢复数据。

    2. 段(Segment)

    表空间是由各个段组成的,段一般分为数据段、索引段和回滚段等。InnoDB默认是基于B+树实现的数据存储。

    这里的索引段则是指的B+树的非叶子节点,而数据段则是B+树的叶子节点。而回滚段则指的是回滚数据,事务隔离的MVCC利用了回滚段实现了多版本查询数据。

    3. 区(Extent) / 页(Page)

    区是表空间的单元结构,每个区的大小为1MB。而页是组成区的最小单元,页也是InnoDB存储引擎磁盘管理的最小单元,每个页的大小默认为16KB。为了保证页的连续性,InnoDB存储引擎每次从磁盘申请4-5个区。

    4. 行(Row)

    InnoDB存储引擎是面向列的(row-oriented),也就是说数据是按行进行存放的,每个页存放的行记录也是有硬性定义的,最多允许存放16KB/2-200行,即7992行记录。

  • 相关阅读:
    2016华中农业大学预赛 E 想法题
    2016华中农业大学预赛 B 数学
    render()
    钩子函数
    redirect_uri域名与后台配置不一致,错误码:10003
    群发次数
    表名
    intval()函数
    render()
    $this->autoRender = false
  • 原文地址:https://www.cnblogs.com/agilestyle/p/11428574.html
Copyright © 2011-2022 走看看