mysql数据库存储逻辑_MySQL笔记-InnoDB物理及逻辑存储结构

首先是InnoDB的物理结构

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

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

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

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

acf0daebd44bc82ea9bed292a5a3d9cc.png

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

使用

show variables liks '%per_table%'

进行查看:

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

a29d6a649290589e37b799ef18790789.png

如创建一个表

create database IT1995Test;

use IT1995Test;

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

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

ec731bebcd5ce096837f3306d4d7a7b0.png

这里通过

show variables liks '%datadir%'

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

dbd8f6ff3419fd7783102fa63a252305.png

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

32c85028325640eac91c4ec90122123b.png

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

21ebd9605b6b0e4bc84138dac25aa4f8.png

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

下面是如何查看表空间

select * from information_schema.INNODB_SYS_TABLES;

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

数据如下:

a936056e08c25bc667ee95572ceb5cfa.png

2d50c3663ea9fce73293409a7b4d6fe9.png

下面来分析下这个图:

f4275b0488b2ca1c576f40dcde622662.png

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值