[MySQL]InnoDB逻辑存储结构
2017-04-01 11:48
260 查看
InnoDB存储引擎中的表非常像Oracle中的索引组织表,每张表必须得有主键,如果表在创建时没有显示定义主键,则根据以下原则自动创建主键: 1)如果有非空的唯一索引,则该索引所在的列为主键; 2)如果不符合上述条件,自动创建一个6个字节的指针为主键。 InnoDB存储引擎的逻辑存储结构和Oracle几乎一样,从大到小分别为:表空间、段、区、页,它们的关系如下图所示:
表空间 我们知道InnoDB有一个默认的表空间,如果我们启用了参数innodb_file_per_table,则针对每张可以单独放在表空间里。这里需要注意的是,即时启用了innodb_file_per_table,也并不是表中所有的数据都单独放在自己的表空间里,单独表空间只存放数据、索引和插入缓冲,其它如Undo、系统事务信息、二次写缓冲等还是存放在默认共享表空间里。 段 表空间有若干各段组成,常见的有数据段、索引段、回滚段等。前面提到InnoDB中的表是索引组织表,因此数据段也称为leaf node segment,索引段也称为non-leaf node segment。 区 每64个连续的页组成区,因此区大小正好为1M。 页 页是InnoDB磁盘管理的最小单位,固定大小为16K,不可以更改(也许通过更改源码可以修改固定大小)。 行 InnoDB表中数据按行存储。
表空间 我们知道InnoDB有一个默认的表空间,如果我们启用了参数innodb_file_per_table,则针对每张可以单独放在表空间里。这里需要注意的是,即时启用了innodb_file_per_table,也并不是表中所有的数据都单独放在自己的表空间里,单独表空间只存放数据、索引和插入缓冲,其它如Undo、系统事务信息、二次写缓冲等还是存放在默认共享表空间里。 段 表空间有若干各段组成,常见的有数据段、索引段、回滚段等。前面提到InnoDB中的表是索引组织表,因此数据段也称为leaf node segment,索引段也称为non-leaf node segment。 区 每64个连续的页组成区,因此区大小正好为1M。 页 页是InnoDB磁盘管理的最小单位,固定大小为16K,不可以更改(也许通过更改源码可以修改固定大小)。 行 InnoDB表中数据按行存储。
相关文章推荐
- MySQL InnoDB 逻辑存储结构
- [MySQL] InnoDB逻辑存储结构
- [MySQL]InnoDB逻辑存储结构
- MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
- innodb的逻辑存储结构
- MySQL InnoDB的存储结构总结
- mysql -innodb存储引擎体系结构
- InnoDB存储引擎表的逻辑存储结构
- MySQL存储结构MyISAM和InnoDB
- mysql两种表存储结构myisam和innodb的性能比较测试
- InnoDB的表类型,逻辑存储结构,物理存储结构
- MySQL InnoDB的存储结构总结(转)
- MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
- mysql两种表存储结构myisam和innodb的性能比较测试
- MySQL两种主要表存储结构MyISAM和InnoDB比较
- MySQL Innodb 存储结构 & 存储Null值 解析
- MySQL InnoDB的存储结构总结
- MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
- MySQL InnoDB的存储结构总结
- MySQL InnoDB的存储结构总结