加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_镇江站长网 (https://www.0511zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL的InnoDB逻辑存储结构 - MySQL教程

发布时间:2014-01-06 16:12:58 所属栏目:MySql教程 来源:站长网
导读:InnoDB存储引擎中的表非常像Oracle中的索引组织表,每张表必须得有主键,如果表在创建时没有显示定 义主键,则根据以下原则自动创建主键: 1)如果有非空的唯一
InnoDB存储引擎中的表非常像Oracle中的索引组织表,每张表必须得有主键,如果表在创建时没有显示定 义主键,则根据以下原则自动创建主键:

1)如果有非空的唯一索引,则该索引所在的列为主键;

2)如果不符合上述条件,自动创建一个6个字节的指针为主键。

InnoDB存储引擎的逻辑存储 结构和Oracle几乎一样,从大到小分别为:表空间、段、区、页,它们的关系如下图所示:

表空间

在上一篇《MySQL InnoDB文件介绍》中,我们知道InnoDB有一个默认的表空间,如果我们启用了参数 innodb_file_per_table,则针对每张可以单独放在表空间里。这里需要注意的是,即时启用了 innodb_file_per_table,也并不是表中所有的数据都单独放在自己的表空间里,单独表空间只存放数据、索 引和插入缓冲,其它如Undo、系统事务信息、二次写缓冲等还是存放在默认共享表空间里。

表空间有若干各段组成,常见的有数据段、索引段、回滚段等。前面提到InnoDB中的表是索引组织表 ,因此数据段也称为leaf node segment,索引段也称为non-leaf node segment。

每64个 连续的页组成区,因此区大小正好为1M。

页是InnoDB磁盘管理的最小单位,固定大小为16K ,不可以更改(也许通过更改源码可以修改固定大小)。

InnoDB表中数据按行存储。

(编辑:应用网_镇江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!