MySQL笔记-InnoDB物理及逻辑存储结构

首先是InnoDB的物理结构

它是B+树,这里有一点要注意的,数据=索引;

叶子结点存放数据、主键、事务ID、回滚指针的。

二级索引最终都会指向主键索引。

在InnoDB引擎中,创建表没有主键,InnoDB会把not null中unique作为主键,若这样的列也没有,那么InnoDB会生成6个字节的不可见的rowid。

在InnoDB中如果是独立表空间,创建一个表会生成2个文件,一个是.frm文件,一个是.ibd文件。

使用

show variables liks '%per_table%'

进行查看:

如果为ON就是独立的,因为独立的话管理起来方便。

如创建一个表

create database IT1995Test;
use IT1995Test;
create table student(id int, name varchar(50));

在data/数据库/下面会有frm和ibd这个文件。

这里通过

show variables liks '%datadir%'

这条命令可以查看,数据库存储位置

从中可以知道他存储在/data/mysql/目录下,刚刚创建了个表现在来看看

从中可以看到IT1995Test文件夹。进入即可:

从中可以看到创建了student.frm与student.ibd

下面是如何查看表空间

select * from information_schema.INNODB_SYS_TABLES;

可以看到表空间,ID,spaceID。

数据如下:

下面来分析下这个图:

这里段和表是一致的,段是物理上的,表是逻辑上的。段采用InnoDB引擎进行管理。一个段下有多个区组成;

区是分配空间的最小单位。标准是1M,Page如果是16K大小为标准,一个区是64个连续的Page组成。

Page是最小的IO单位。标准为16K

发布了1338 篇原创文章 · 获赞 8528 · 访问量 318万+

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/105504363
今日推荐